             LaTeX on small systems: auto-loading

                        18 June 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 available memory to TeX, leaving very little to store
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 are releasing 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'.


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

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

This will produce three files.

latexa.ltx        source file for the smaller format.
autopict.sty      package containing the source for picture mode
autotabg.sty      package containing the source for tabbing environment

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, `autopict.sty' and `autotabg.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 can not easily be redefined!

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

If a document containing \usepackage{autopict} is sent to a site using
the `full' version of LaTeX (that 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 ---
