LaTeX on small systems: auto-loading

		      21 November 1995


On some small systems (perhaps most noticeably emTeX for PCs if your
machine is unable to use the TeX386 version) LaTeX uses up a large
amount of the memory available to TeX, leaving very little for storage
of any further commands, complex text (such as tables), floats or
cross references that may occur in a typical document. Note that
these limits are built into the TeX executable and do not directly
correspond to any physical memory that your machine has installed.

In order to help with this problem, we have produced an *experimental*
configuration of LaTeX in which certain functions are not predefined
in the format, but are loaded automatically from a style file the first
time they are used. This saves a lot of memory in the case that a
document does not use these features.

In this release two environments are `auto-loaded' in this way,
`picture' and `tabbing', as are various bits of internal code used in
error handling, font loading and advanced page makeup.


MAKING THE AUTOLOAD FORMAT
==========================

NOTE: Before you can proceed any further you *must* unpack the standard
version from unpack.ins.

Process the file autoload.ins (with plain TeX or LaTeX, not iniTeX).

This will produce six files:

  latexa.ltx source file for the smaller format

  And the following five package files:

  autopict.sty source for picture mode
  autotabg.sty source for tabbing environment
  autoerr.sty texts of most LaTeX error commands
  autofss1.sty little used internal font selection commands
  autoout1.sty source for \enlargethispage and related commands.

The `latexa' format should then be made by running iniTeX on the
file `latexa.ltx'.

To do this, follow the instructions in install.txt (and emtex.txt
etc) but replace:
   `latex.ltx' and `latex.fmt'
by
   `latexa.ltx' and `latexa.fmt'.

Finally, the five files `autoxxxx.sty' should be moved to the
directory in which the other LaTeX .sty files have been placed.


USING THE FORMAT
================

The resulting format should normally be used in exactly the same way
as standard LaTeX.

Picture mode can be used without any special commands. Since picture
mode is not pre-defined, you will notice TeX loading the `autopict'
package the first time you use \begin{picture} (or \thicklines) in a
document. This takes some time (and the name of the file being loaded
appears on the terminal) but otherwise the behaviour should be just as
with standard LaTeX.

For instance, processing usrguide.tex (which has a picture on page 23)
produces the following terminal output:

  This is TeX, Version 3.1415 (C version 6.1)
  (usrguide.tex
  LaTeX2e (autoload version) <1995/06/01>
  )
  (ltxguide.cls
  Document Class: ltxguide 1994/12/14 Standard LaTeX class
  (article.cls
  Document Class: article 1995/06/05 v1.3d Standard LaTeX document class
  (size10.clo))) (usrguide.aux) (OMScmr.fd) (usrguide.toc [1]) [2] [3]
  [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]
  [19] [20] [21] [22] (autopict.sty) [23] [24] [25] [26] [27] [28] [29]
  [30] (usrguide.aux) )

(The output may differ on your machine due to different path names for
the files.)


POSSIBLE PROBLEMS
=================

Sometimes you need to redefine a command before it is used. Clearly, if
the command is not initially defined, it cannot easily be redefined!

As a real example, the popular `epic' package redefines some picture
mode commands, therefore to use epic it is necessary to force
picture mode to be loaded by explicitly putting in your document
\usepackage{autopict} before \usepackage{epic}.

If a document containing \usepackage{autopict} is sent to a site using
the `full' version of LaTeX (which has picture mode defined in the
format) then this \usepackage will be silently ignored and the
document will still work correctly.

A note to package writers: if your package depends on the picture
environment being loaded then you can avoid the user needing to add
the extra \usepackage to documents by adding \RequirePackage{autopict}
to the beginning of your package file.

Similar comments apply to `tabbing' and the `autotabg' package.


INTERNAL INTERFACE
==================

Most new features added in LaTeX2e that were not in LaTeX2.09 have a
consistent interface of commands \WithMixedCase names.

If you inspect the implementation of this auto-loading feature you will
not find any such interface, but rather an ad hoc collection of low-
level TeX commands.

This situation may change as more practical experience is gained with
the auto-loading feature. In future releases it may be possible to
auto-load more parts of LaTeX (so making an even smaller `base' format)
and an interface for producing the auto-loaded files may be defined.

However, for the user, the nature of the implementation should not
matter too much since in the normal case the loading of the file is
`invisible' and happens automatically the first time it is needed.

--- Copyright 1995 the LaTeX3 project. All rights reserved ---