Next: Some examples Up: Modifying LATEX Previous: Introduction

#
The system

In developing this philosophy, and the consequent limitations on how modifications of the system should be carried out, we were heavily influenced by the following facts concerning the current widespread and wide-ranging uses of the LATEX system.

1.
  LATEX is not just a document processing system; it also defines a language for document exchange.

2.
  The standard document class files, and some other files, also define a particular formatting of a document.

3.
  The packages that we maintain define a particular document interface and, in some cases, particular formatting of parts of a document.
4.
  The interfaces between different parts of the LATEX system are very complex and it is therefore very difficult to check that a change to one file does not affect the functionality of both that file and also other parts of the system not obviously connected to the file that has been changed.

This leads us to the general principle that:

> with certain special exceptions, if you change the contents of a file then the changed version should have a different file name.

We certainly do not wish to prevent people from experimenting with the code in different ways and adapting it to their purposes. However, we are concerned that any distribution of modifications to the code should be very clearly identified as not being a part of the standard distribution. The exact wording and form of the distribution conditions is thus something that is flexible, but only within the constraint of keeping LATEX as a standardised, reliable product for the purposes described above: the exchange and formatting of documents.

Next: Some examples Up: Modifying LATEX Previous: Introduction