summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex')
-rw-r--r--Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex623
1 files changed, 623 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex b/Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex
new file mode 100644
index 00000000000..c74380c813e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gmdoc/basedrivers/source2e_gmdoc.tex
@@ -0,0 +1,623 @@
+% \iffalse meta-comment
+%
+% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2006
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file.
+%
+% This I~hope would be 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.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% 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.
+%
+% \fi
+%
+% \division{Some Typesetting Remarks}
+%
+% This driver typesets The Source $2_\varepsilon$ included in the
+% \TeX Live 2005 distribution. Some tricks here are done just for
+% fixing typos in the Source Files. The Source Files themselves are
+% intact.
+%
+% Most probably you should redefine the |\BasePath| macro so that it
+% was the path of the \file{\dots/source/latex/base} directory on your
+% system. The path levels should be separated with slashes (even on
+% Windows) and should also end with a~slash (to concatenate well with
+% the file name).
+%
+% \stanza
+% While \TeX ing The Source again after a~fatally erroneous pass there
+% happened the `\TeX\ capacity exceded error' sometimes. \TeX ing once
+% again was the right thing to do.
+%
+% The \pk{hyperref} package usually issues some warnings about non
+% existence of some hypertargets. I~consider it rather a~feature of
+% \pk{hyperref} (a~bug?) than a~bug in the typeset file(s).
+%
+% \stanza
+% One more thing you shouldn't bother of is the differences of the
+% checksums, I~mean the usual \pk{gmdoc} message that the checksum
+% stated in the file differs from \pk{gmdoc}'s own count. That is
+% O.K.\ since the checksum stated in a~traditional \file{.dtx}
+% is the number of backslashes in the macrocodes while the checksum
+% handled and expected by \pk{gmdoc} is the number of \emph{the escape ^^B
+% chars}. Don't get the difference? Assume the declared code escape
+% char is |\| (as usual) and consider |\\| in the code. Due to
+% the traditional counting this CS increases the checksum by 2 while
+% due to mine by 1: the second bslash is \emph{not} escape char: it's
+% the CS name.
+%
+% Moreover, when you declare |\CodeEscapeChar\!| e.g., the code
+%\[\hbox{|!Alice !\!has !an !aligator|}\]
+% increases the `new way' checksum by 5 not by 1 as it would do the
+% traditional one.
+%
+% \stanza
+% This driver uses an unofficial little package \pk{gmeometric} to
+% allow the |\geometry| command also inside \env{document}. This
+% package is included in the drivers' directory.
+%
+%
+% \division{The Body}
+%
+% ``This document will typeset the \LaTeX\ sources as a single document.
+% This will produce quite a large file (roughly 555 pages) and may
+% take a long time.
+%
+% Some notes on processing this document are contained at the end
+% of this document's source file, after |\end{document}| (not typeset).''
+%
+% GM 2006/12/1
+%
+% First a special index style for makeindex.
+%
+
+\begin{filecontents}{gmsource2e.ist}
+preamble
+"\n \\begin{theindex} \n"
+postamble
+"\n\n \\end{theindex}\n"
+% The next lines will produce some warnings when
+% running Makeindex as they try to cover two different
+% versions of the program:
+lethead_prefix "{\\bfseries\\hfill "
+lethead_suffix "\\hfill}\\nopagebreak\n"
+lethead_flag 1
+heading_prefix "{\\bfseries\\hfill "
+heading_suffix "\\hfill}\\nopagebreak\n"
+headings_flag 1
+
+% and just for source2e:\\
+% Remove R so I is treated in sequence I J K not I II III
+page_precedence "rnaA"
+\end{filecontents}
+
+
+\PassOptionsToPackage{indexallmacros}{gmdoc}
+
+\if1 1
+ \documentclass[debug,gmeometric]{gmdocc}%
+ \mcdiagOn
+\else
+ \documentclass[gmeometric]{gmdocc}%
+\fi
+
+\bgroup\catcode`_=12
+\firstofone{\egroup
+ \if1 1\includeonly{source2e_by_gmdoc}\fi}
+
+
+
+%^^A\usepackage[margin=2cm,b5paper]{geometry}% and this
+\usepackage{oldcomm}% Definitions of \env{oldcomments} and |\task|
+% copied from \file{ltxdoc.dtx}.
+
+\listfiles
+
+\ltxLookSetup
+\gmdoccMargins
+\olddocIncludes% This is the crucial declaration to drive \pk{gmdoc} into
+% the traditional settings.
+\twocoltoc% For towocolumn table of contents.
+
+\DeleteShortVerb\|
+\OldMakeShortVerb*\|% To define shortverb \verb+|+ such that it
+% remains shortverb in math mode (by default I~define it to be $\vert$ in
+% math mode.
+
+
+
+% Do not index some TeX primitives, and some common plain TeX commands.
+
+\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global}
+\DoNotIndex{\if,\ifnum,\ifdim,\ifcat,\ifmmode,\ifvmode,\ifhmode,%
+ \iftrue,\iffalse,\ifvoid,\ifx,\ifeof,\ifcase,\else,\or,\fi}
+\DoNotIndex{\box,\copy,\setbox,\unvbox,\unhbox,\hbox,%
+ \vbox,\vtop,\vcenter}
+\DoNotIndex{\@empty,\immediate,\write}
+\DoNotIndex{\egroup,\bgroup,\expandafter,\begingroup,\endgroup}
+\DoNotIndex{\divide,\advance,\multiply,\count,\dimen}
+\DoNotIndex{\relax,\space,\string}
+\DoNotIndex{\csname,\endcsname,\@spaces,\openin,\openout,%
+ \closein,\closeout}
+\DoNotIndex{\catcode,\endinput}
+\DoNotIndex{\jobname,\message,\read,\the,\m@ne,\noexpand}
+\DoNotIndex{\hsize,\vsize,\hskip,\vskip,\kern,\hfil,\hfill,\hss}
+\DoNotIndex{\m@ne,\z@,\z@skip,\@ne,\tw@,\p@}
+\DoNotIndex{\dp,\wd,\ht,\vss,\unskip}
+
+% Set up the Index and Change History to use |\part|.
+\makeatletter
+\def\indexdiv{\part*}
+\AtDIPrologue{\@ifnotmw{%
+ \markboth{Index}{Index}%
+ \addcontentsline{toc}{part}{Index}}{}%
+}
+
+\GlossaryPrologue{\part*{Change History}%
+ % Allow control names to be hyphenated here\dots
+ {\GlossaryParms\ttfamily\hyphenchar\font=`\-}%
+ \@ifnotmw{%
+ \markboth{Change History}{Change History}%
+ \addcontentsline{toc}{part}{Change History}}{}%
+}
+
+% ``The standard |\changes| command modified slightly to better cope with
+% this multiple file document.''--- Not quite:
+\makeatletter
+% \begin{verbatim}
+% % \def\changes@#1#2#3{%
+% % \let\protect\@unexpandable@protect
+% % \edef\@tempa{\noexpand\glossary{#2\space\currentfile\space#1\levelchar
+% % \ifx\saved@macroname\@empty
+% % \space
+% % \actualchar
+% % \generalname
+% % \else
+% % \expandafter\@gobble
+% % \saved@macroname
+% % \actualchar
+% % \string\verb\quotechar*%
+% % \verbatimchar\saved@macroname
+% % \verbatimchar
+% % \fi
+% % :\levelchar #3}}%
+% % \@tempa\endgroup\@esphack}
+%\end{verbatim}
+\makeatother
+
+% Produce a Change Log and (2 column) Index.
+\RecordChanges
+\CodelineIndex
+\EnableCrossrefs
+\setcounter{IndexColumns}{2}
+
+% Needed for documentation in \file{ltoutenc.dtx}.
+\usepackage{textcomp}
+
+\olddocIncludes
+
+\begin{document}
+ \title{The \LaTeXe\ Sources\thanks{Typeset with \pk{gmdoc} by Natror
+ on \today.}}
+ \author{%
+ Johannes Braams\\
+ David Carlisle\\
+ Alan Jeffrey\\
+ Leslie Lamport\\
+ Frank Mittelbach\\
+ Chris Rowley\\
+ Rainer Sch\"opf}
+
+
+\def\BasePath{C:/TeXLive2005/texmf-dist/source/latex/base/}
+
+
+% This command will be used to input the patch file
+% if that file exists.
+\newcommand{\includeltpatch}{%
+ \def\currentfile{ltpatch.ltx}
+ \part{ltpatch}
+ {\let\ttfamily\relax
+ \xdef\filekey{\filekey, \thepart={\ttfamily\currentfile}}}%
+ Things we did wrong\ldots
+ \IndexInput{ltpatch.ltx}}
+
+
+
+% Get the date from \file{ltvers.dtx}
+\makeatletter
+\let\patchdate=\@empty
+\begingroup
+ \def\ProvidesFile#1\fmtversion#2{\date{#2}\endinput}
+ \input{\BasePath ltvers.dtx}
+\global\let\X@date=\@date
+
+% Add the patch version if available.
+ \long\def\Xdef#1#2#3\def#4#5{%
+ \xdef\X@date{#2}%
+ \xdef\patchdate{#5}%
+ \endinput}%
+ \InputIfFileExists{ltpatch.ltx}
+ {\let\def\Xdef}{\global\let\includeltpatch\relax}
+\endgroup
+
+\ifx\@date\X@date
+ \def\Xpatch{0}
+ \ifx\patchdate\Xpatch\else
+ \edef\@date{\@date\space Patch level \patchdate}
+ \fi
+\else
+ \@warning{ltpatch.ltx does not match ltvers.dtx!}
+ \let\includeltpatch\relax
+\fi
+\makeatother
+
+ \pagenumbering{roman}
+ \thispagestyle{empty}
+ \maketitle
+ \emptify\maketitle
+
+ \tableofcontents
+
+ \clearpage
+
+ \pagenumbering{arabic}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%``Each of the following |\DocInclude| lines includes a file with extension
+% \file{.dtx}. Each of these files may be typeset separately. For instance
+%\[\hbox{|latex ltboxes.dtx|}\]
+% will typeset the source of the \LaTeX\ box commands.''
+%
+% (Well, I~(Natror) prepared only this common driver.)
+%
+% If this file is processed, each of these separate \file{.dtx} files will be
+% contained as a part of a single document. Using \file{ltxdoc.cfg} you can
+% then optionally produce a combined index and/or change history for
+% the entire source of the format file. Note that such a document will
+% be quite large (about 555 pages).
+%
+
+ \DocInclude[\BasePath]{ltdirchk} % System dependent initialisation
+
+\AfterMacrocode{53}{\def\do{\cs{do}}}% A~bare |\do| in narration on
+% line 161.
+ \DocInclude[\BasePath]{ltplain} % LaTeX version of Knuth's \file{plain.tex}.
+
+ \DocInclude[\BasePath]{ltvers} % Current version date.
+
+ \DocInclude[\BasePath]{ltdefns} % Initial definitions.
+
+ \DocInclude[\BasePath]{ltalloc} % Allocation of counters and others.
+
+ \DocInclude[\BasePath]{ltcntrl} % Program control macros.
+
+ \DocInclude[\BasePath]{lterror} % Error handling.
+
+ \DocInclude[\BasePath]{ltpar} % Paragraphs.
+
+ \DocInclude[\BasePath]{ltspace} % Spacing, line and page breaking.
+
+ \DocInclude[\BasePath]{ltlogos} % Logos.
+
+ \DocInclude[\BasePath]{ltfiles} % |\input| files and related commands.
+
+\AtBegInputOnce{\let\task\gobble}% In general |\task| gobbles two, but
+% in this file it's used with one argument and next to it is
+% |\changes| (which in \pk{gmdoc} is |\outer| so gobbling it raises an
+% error).
+ \DocInclude[\BasePath]{ltoutenc} % Output encoding interface.
+
+ \DocInclude[\BasePath]{ltcounts} % Counters.
+
+ \DocInclude[\BasePath]{ltlength} % Lengths.
+
+ \DocInclude[\BasePath]{ltfssbas} % NFSS Base macros.
+
+%^^A\AtBegInputOnce{\addtomacro\maketitle{\traceoff}\traceon}%{\nameshow{@author}\show\maketitle\nameshow{@maketitle}}
+ \DocInclude[\BasePath]{ltfsstrc} % NFSS Tracing (and \file{tracefnt.sty}).
+
+ \DocInclude[\BasePath]{ltfsscmp} % NFSS1 Compatibility.
+
+ \DocInclude[\BasePath]{ltfssdcl} % NFSS Declarative interface.
+
+ \DocInclude[\BasePath]{ltfssini} % NFSS Initialisation.
+
+ \DocInclude[\BasePath]{fontdef} % \file{fonttext.ltx/fontmath.ltx}
+
+ \DocInclude[\BasePath]{preload} % \file{preload.ltx}
+
+ \DocInclude[\BasePath]{ltfntcmd} % |\textrm| etc.
+
+ \DocInclude[\BasePath]{ltpageno} % Page numbering.
+
+ \DocInclude[\BasePath]{ltxref} % Cross referencing.
+
+ \AfterMacrocode{1137}{\let\GMDebugCS\cs
+ \def\cs##1{\expandafter\GMDebugCS\expandafter{\string##1}}}
+ % |\cs{\@defaultsubs}| on line 257, |\cs{\@refundefined}| on line
+ % 263. It's the first step. The next is done before |\PrintChanges|.
+ \AfterMacrocode{1139}{\let\cs\GMDebugCS}
+ \AfterMacrocode{1183}{% The last |\changes| have second argument
+ % |{1994/05/26/16}|.
+ \csname changes\endcsname{v0.9i}{1993/12/16}{\cs{literal} added}%
+ \csname changes\endcsname{v1.0r}{1994/05/26}{\cs{literal} removed}%
+ \gdef\GMdebugChanges{\expandafter\def\csname
+ changes\endcsname####1####2####3{}}%
+ \aftergroup\GMdebugChanges}% A~trick with |\aftergroup| 'cause
+ % that \env{macrocode} is inside \env{macro}.
+ \DocInclude[\BasePath]{ltmiscen} % Miscellaneous environment definitions.
+
+ \DocInclude[\BasePath]{ltmath} % Mathematics set up.
+
+ \DocInclude[\BasePath]{ltlists} % List and related environments.
+
+ \DocInclude[\BasePath]{ltboxes} % Parbox and friends.
+
+ \DocInclude[\BasePath]{lttab} % \env{tabbing}, \env{ tabular} and \env{array}.
+
+ \DocInclude[\BasePath]{ltpictur} % Picture mode.
+
+ \DocInclude[\BasePath]{ltthm} % Theorem environments.
+
+ \DocInclude[\BasePath]{ltsect} % Sectioning.
+
+ \DocInclude[\BasePath]{ltfloat} % Floats.
+
+ \DocInclude[\BasePath]{ltidxglo} % Index and Glossary.
+
+ \DocInclude[\BasePath]{ltbibl} % Bibliography.
+
+ \DocInclude[\BasePath]{ltpage} % |\pagestyle|, |\raggedbottom|, |\sloppy|.
+
+ \DocInclude[\BasePath]{ltoutput} % Output routine.
+
+ \DocInclude[\BasePath]{ltclass} % Package \& Class interface.
+
+ \DocInclude[\BasePath]{lthyphen} % Hyphenation (\file{hyphen.ltx}).
+
+ \DocInclude[\BasePath]{ltfinal} % Last minute initialisations and dump.
+
+ \includeltpatch % Corrections distributed after the full release.
+
+% Stop here if \file{ltxdoc.cfg} says |\AtEndOfClass{\OnlyDescription}|
+\StopEventually{\end{document}}
+
+\clearpage
+\pagestyle{headings}
+
+% Make \TeX\ shut up.
+\hbadness=10000
+\newcount\hbadness
+\hfuzz=\maxdimen
+
+\typeout{%
+ ^^JProduce change log with^^J%
+ makeindex -r -s gmglo.ist -o \jobnamewoe.gls \jobnamewoe.glo^^J}
+
+{%^^A\def\.{\cs{.}}% 'cause there's |\cs {\.}| in change log on l.4314
+ % The next step of debug of \file{ltmiscen.dtx}'s
+ % |\changes...{...\cs{\@defaultsubs...}}| etc.\\ How does it work?
+ % Remember |\cs| is robust. The typo lies in giving it a~CS argument
+ % instead of expected CS name without backslash. So, in the step 1
+ % we only |\string| the argument CS to let it be written outto the
+ % \file{.glo} file. Then, in step 2, we redefine |\cs| to first
+ % |\string| its argument inside an |\if|. Remember that |\if|
+ % expands two tokens next to it until it finds sth.\ unexpandable,
+ % so it'll execute |\string|. Then, if the first char of the
+ % |\stringed| argument is |\|\catother, the condition is satisfied
+ % and |\if...\fi| expands to what follows that backslash and
+ % precedes |\else|. So if the argument was a~CS, its backslash will
+ % be gobbled by |\if|. Otherwise |\if...\fi| expands to what is
+ % between |\else| and |\fi|, to the unchanged argument that is. Then
+ % to that expanded list of tokens the original |\cs| is applied.
+ \let\GMDebugCS\cs
+ \def\cs#1{\edef\AtTempa{\if\bslash\string#1\else#1\fi}%
+ \GMDebugCS{\AtTempa}}
+\PrintChanges}
+
+\typeout{%
+ ^^JProduce index with^^J%
+ makeindex -r -s gmsource2e.ist \jobnamewoe.idx^^J}
+
+% ``Makeindex needs a symbol between the parts of composite page numbers
+% but we dont want one, so:''---I~skip that.
+%
+%\begin{verbatim}
+%% \begingroup
+%% \def\endash{--}
+%% \catcode`\-\active
+%% \def-{\futurelet\temp\indexdash}
+%% \def\indexdash{\ifx\temp-\endash\fi}
+%\end{verbatim}
+
+\geometry{bottom=3.6cm}
+%^^A\onecolumn
+%^^A~\clearpage is contained in |\geometry|.
+
+
+\PrintIndex
+%^^A\endgroup
+
+% Make sure that the index is not printed twice
+% (ltxdoc.cfg might have a second \PrintIndex command)
+\let\PrintChanges\relax
+\let\PrintIndex\relax
+
+\gmdoccMargins
+\clearpage
+\csname @ifnotmw\endcsname{\pagestyle{headings}}{\pagestyle{outer}}
+
+\gmdocIncludes
+\SelfInclude{%^^A\def\CommonEntryCmd{UsgEntry}%\label{UsgHack}
+ % ^^A\label{SelfIncludeUsg}
+ \csname gag@index\endcsname% we tur writing outto the \file{.idx}
+ % out for the driver since it's \emph{not} a~part of The Source.
+%^^A \filediv[The New Driver?]{How I~did It or \gmhypertarget{The Driver} File}%
+}
+
+\end{document}
+%\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+To use this file to produce a fully indexed source code
+you need to execute the following (or equivalent) commands:
+
+ latex source2e_by_gmdoc.tex
+
+ makeindex -s gmsource2e.ist source2e_by_gmdoc.idx
+ makeindex -s gmglo.ist -o source2e_by_gmdoc.gls source2e_by_gmdoc.glo
+
+ latex source2e_by_gmdoc.tex
+ latex source2e_by_gmdoc.tex
+
+
+The makeindex style gmsource2e.ist is used in place of the usual
+doc gind.ist to ensure that I is used in the sequence I J K
+not I II II, which would be the default makeindex behaviour.
+
+The third run with latex is only required to get the table of
+contents entries for the change log and index. You may speed things up
+by using the \includeonly mechanism so as not to typeset the source
+files on the second run. This involves changing the file
+ltxdoc.cfg
+between the latex runs.
+
+The following unix script automates this.
+ (It could easily be ported to scripts for DOS or VMS,
+ rm is ReMove a file, and echo "..." > file writes ... to "file".)
+
+
+After this script (after the second ==============) is a similar script
+that will produce the documentation for all the files in the base
+distribution that are *not* included in source2e.dvi. This second script
+was requested, but before using it, beware it will take a long time!
+It may however be modified as required, eg to not typeset the fdd files
+or whatever...
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Natror (GM): I~didn't touch the following so it's probably not quite suitable
+for gmdoc-ing.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+==============
+#!/bin/sh
+
+rm -f source2e_by_gmdoc.gls source2e_by_gmdoc.ind source2e_by_gmdoc.toc
+
+# First run:
+# Create new standard ltxdoc.cfg file
+# Pass the (possibly empty) list of arguments supplied on the
+# command line to article class.
+#
+# If you use A4 paper, running this script with argument
+# a4paper
+# may save about 30 pages.
+#
+echo "\PassOptionsToClass{$*}{article}" > ltxdoc.cfg
+
+
+# Now LaTeX the file with this cfg file.
+#
+latex source2e.tex
+
+
+# Make the Change log and Glossary.
+#
+makeindex -s source2e.ist source2e.idx
+makeindex -s gglo.ist -o source2e.gls source2e.glo
+
+
+# Second run: append \includeonly{} to ltxdoc.cfg to speed up things
+# (this run needed only to get changes and index listed in .toc file)
+#
+# Note that the index will not be made incorrect by the insertion
+# of the table of contents as the front matter uses a diferent page
+# numbering scheme.
+#
+echo "\includeonly{}" >> ltxdoc.cfg
+
+latex source2e.tex
+
+
+# Third and final run, to put everything together.
+# First restore the cfg file:
+#
+echo "\PassOptionsToClass{$*}{article}" > ltxdoc.cfg
+latex source2e.tex
+
+
+==============
+#!/bin/sh
+
+# Running this script will process all the dtx fdd and *guide.tex
+# and ltnews*.tex files in the LaTeX distribution, except the dtx
+# files included in source2e.tex.
+# (The shell first script in the comments of source2e.tex will
+# process those.)
+
+# Any command line arguments (eg a4paper) are taken as options to the
+# article class.
+
+# This script is likely to take ages!
+
+echo "\PassOptionsToClass{$*}{article}" > ltxdoc.cfg
+echo "\batchmode" >> ltxdoc.cfg
+
+# The next four lines produce full indexes and change logs
+# you may not want those.
+echo "\AtBeginDocument{\RecordChanges}" >> ltxdoc.cfg
+echo "\AtEndDocument{\PrintChanges}" >> ltxdoc.cfg
+echo "\AtBeginDocument{\CodelineIndex\EnableCrossrefs}" >> ltxdoc.cfg
+echo "\AtEndDocument{\PrintIndex}" >> ltxdoc.cfg
+
+# If you do not want any code listings, just documentation, then instead
+# of the above four lines, uncomment the following:
+# echo "\AtBeginDocument{\OnlyDescription}" >> ltxdoc.cfg
+
+echo "\PassOptionsToClass{$*}{article}" > ltxguide.cfg
+echo "\batchmode" >> ltxguide.cfg
+
+cp ltxguide.cfg ltnews.cfg
+
+
+for i in *dtx *fdd *guide.tex ltnews*.tex
+do
+B=`basename $i .dtx`
+
+if (grep "Include{$B}" source2e.tex >/dev/null ; )
+then
+echo In source2e: $i
+else
+echo latex $i
+ if (latex $i > /dev/null)
+ then
+ echo latex $i
+ latex $i > /dev/null
+ echo makeindex -s gind.ist $B.idx
+ makeindex -s gind.ist $B.idx > /dev/null 2> /dev/null
+ echo makeindex -s gglo.ist -o $B.gls $B.glo
+ makeindex -s gglo.ist -o $B.gls $B.glo > /dev/null 2> /dev/null
+ echo latex $i
+ latex $i > /dev/null
+ else
+ echo "!!! LaTeX ERROR: $i. (See $B.log.)"
+ fi
+fi
+
+done