X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["10358" "Thu" "22" "June" "1995" "19:17:23" "+0200" "Chris Rowley" "C.A.Rowley@OPEN.AC.UK" nil "265" "Re: LaTeX distribution and modification conditions" "^Date:" nil nil "6" nil nil nil nil] nil) Received: from MZDMZA.ZDV.UNI-MAINZ.DE (vzdmzj.zdv.Uni-Mainz.DE [134.93.178.10]) by trudi.zdv.Uni-Mainz.DE (8.6.12/8.6.12) with ESMTP id TAA26082 for ; Thu, 22 Jun 1995 19:21:20 +0200 Received: from DIRECTORY-DAEMON by MZDMZA.ZDV.UNI-MAINZ.DE (PMDF V4.3-12 #4432) id <01HS0NEYA8LS8ZE5IV@MZDMZA.ZDV.UNI-MAINZ.DE>; Thu, 22 Jun 1995 19:20:47 +0100 Received: from mxrelay.gmd.de by MZDMZA.ZDV.UNI-MAINZ.DE (PMDF V4.3-12 #4432) id <01HS0NEXHK3KC3RWUB@MZDMZA.ZDV.UNI-MAINZ.DE>; Thu, 22 Jun 1995 19:20:46 +0100 Received: from vm.gmd.de by mxrelay.gmd.de (LSMTP for OpenVMS v0.1a) with SMTP id B9722B60 ; Thu, 22 Jun 1995 19:20:40 +0200 Received: from VM.GMD.DE (NJE origin LISTSERV@DEARN) by VM.GMD.DE (LMail V1.2b/1.8b) with BSMTP id 5213; Thu, 22 Jun 1995 19:20:24 +0200 Received: from VM.URZ.UNI-HEIDELBERG.DE by VM.URZ.UNI-HEIDELBERG.DE (LISTSERV release 1.8b) with NJE id 5880 for LATEX-L@VM.URZ.UNI-HEIDELBERG.DE; Thu, 22 Jun 1995 19:16:29 +0000 Received: from DHDURZ1 (NJE origin SMTP@DHDURZ1) by VM.URZ.UNI-HEIDELBERG.DE (LMail V1.2a/1.8a) with BSMTP id 8118; Thu, 22 Jun 1995 19:16:12 +0000 Received: from ixgate01.dfnrelay.d400.de by vm.urz.Uni-Heidelberg.de (IBM VM SMTP V2R2) with TCP; Thu, 22 Jun 95 19:16:07 CET X400-Received: by mta d400relay in /PRMD=dfnrelay/ADMD=d400/C=de/; Relayed; Thu, 22 Jun 1995 19:19:41 +0200 X400-Received: by /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Thu, 22 Jun 1995 19:17:34 +0200 X400-Received: by /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Thu, 22 Jun 1995 19:17:23 +0200 X400-Received: by /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Thu, 22 Jun 1995 19:17:23 +0200 Alternate-recipient: Allowed Reply-to: Mailing list for the LaTeX3 project Message-id: <"27192 Thu Jun 22 18:17:40 1995"@mhs-relay.ac.uk> X-Envelope-to: schoepf@goofy.zdv.uni-mainz.de X-VMS-To: MAIL1::"LATEX-L@VM.URZ.UNI-HEIDELBERG.DE" X-VMS-Cc: CA_ROWLEY Content-identifier: RE: LaTeX dis... MIME-version: 1.0 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Content-transfer-encoding: 7BIT X400-Content-type: P2-1984 (2) X400-MTS-identifier: [/PRMD=uk.ac/ADMD= /C=gb/;sun.mhs-re.189:22.05.95.17.17.34] X400-Originator: C.A.Rowley@open.ac.uk X400-Recipients: non-disclosure:; Date: Thu, 22 Jun 1995 19:17:23 +0200 From: Chris Rowley Sender: Mailing list for the LaTeX3 project To: Multiple recipients of list LATEX-L Subject: Re: LaTeX distribution and modification conditions Status: R X-Status: X-Keywords: X-UID: 1648 > Anyone who has got the latest release will, I am sure, have read the > modguide.tex document by now; this describes our policy on > distributing and modifying files from the LaTeX distribution. > In case you have not got it yet, here is the document itself. % Filename: modguide.tex \NeedsTeXFormat{LaTeX2e}[1994/12/01] \documentclass{ltxguide}[1994/11/20] \setcounter{secnumdepth}{-1} \title{Modifying \LaTeXe} \author{\copyright~Copyright 1995, \LaTeX3 Project Team.\\ All rights reserved.} \date{14 June 1995} \begin{document} \maketitle \tableofcontents \section{Introduction} \label{sec:intro} This document describes the principles underlying our policy on distribution and modification of the files comprising the \LaTeX{} system. It has been produced as a result of wide-ranging discussions of the issues involved in the support and maintenance of a widely distributed document processing system used by diverse people for many applications. These discussions have involved users, maintainers of installations that support \LaTeX{} and various types of organisations that distribute it. The discussions are continuing and we are hoping that this document will be widely distributed and make a useful contribution to the debate. Our aim is to produce a system that which users of all types can trust to fulfill their needs. Such a system must be stable and well-maintained. This implies that it must be reasonably easy to maintain it (otherwise it will simply not get maintained at all). So here is a summary of our basic philosophy: \begin{quotation} We believe that the freedom to rely on a widely-used standard for document interchange and formatting is as important as the freedom to experiment with the contents of files. We are therefore adopting a policy similar to that which Donald Knuth applies to modifications of the underlying \TeX{} system: that certain files, together with their names, are part of the system and therefore cannot be changed unless the following conditions are met: \begin{itemize} \item they are clearly marked as being no longer part of the standard system; \item the name of the file is changed. \end{itemize} \end{quotation} \section{The system} \label{sec:sys} 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. \begin{enumerate} \item \LaTeX{} is not just a document processing system; it also defines a language for document exchange. \item The standard document class files, and some other files, also define a particular formatting of a document. \item The packages that we maintain define a particular document interface and, in some cases, particular formatting of parts of a document. \item 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 that are not obviously connected to the file that has been changed. \end{enumerate} This leads us to the general principle that: \begin{quotation} with certain special exceptions, if you change the contents of a file then the changed version should have a different file name. \end{quotation} 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. \section{Some examples} \label{sec:expl} Here we elaborate the arguments that have led us to the above conclusion. \subsection{Separate development considered harmful!} \label{sec:ja} In many fields, the use of \LaTeX{} as a language for communication is just as important as its capacity for fine typesetting; this is a very important consideration for a large population of authors, journal editors, archivists, etc. Related to this issue of portability is the fact that the file names are part of the end-user syntax. To take a real example, the \LaTeX{} `tools' collection contains the package `array.sty'. A new user-level feature was added to this file at the end of 1994 and a document using this feature can contain the line: \begin{verbatim} \usepackage{array}[1994/10/16] \end{verbatim} By supplying the optional argument, the document author is indicating that a version of the file \texttt{array.sty} dated no earlier than that date is required to run this document without error. This feature would be totally worthless if we were to allow an alternative version of the array package to be distributed under the same name since it would mean that there would be in circulation files of a later date, but without the new feature. If the document were processed using this `alternative array' then it would certainly produce `undefined command' errors and would probably not be processable at all. \subsection{What's in a file-name?} \label{sec:jb} In a pure markup language, such as SGML, it is reasonably clear that control over the final presentation lies with the receiver of a document and not with the author. However, the way that \LaTeX{} is often used in practice means that most people (at least when using the standard classes and packages) expect the formatting to be preserved when they send the document to another site. For example, suppose, as is still the most common use of \LaTeX{} in publishing, you produce a document for `camera-ready-copy' using the class `article' and that you carefully tune the formatting by, for example, adding some explicit line breaks etc, to ensure that it fits the 8 page limit set by the editor a journal or proceedings. It then gets sent to the editor or a referee who, without anyone knowing, has a non-standard version of the class file `article' and so it then runs to 9 pages. The consequence of this will, at the least, be a lot of wasted time whilst everyone involved works out what has gone wrong; it will probably also lead to everyone blaming each other for something which was in fact caused by a misguided distribution policy. It should also be noted that, for most people, the version of the class file `article' that gets used is decided by a site maintainer or the compilers of a CD-ROM distribution. To most users, the symbols \texttt{a\,r\,t\,i\,c\,l\,e} in: \begin{verbatim} \documentclass{article} \end{verbatim} are just as much part of \LaTeX{}'s syntax as are the symbols \texttt{1\,2\,p\,t} in: \begin{verbatim} \hspace{12pt} \end{verbatim} Thus they should both define a standard formatting rather than sometimes producing 1 more page or a 5pt larger space. Users rely on the fact that the command (or menu item) `LaTeX' produces a completely standard LaTeX, including the fact that `article' is the `standard article'. They would not be at all happy if the person who installed and maintains \LaTeX{} for them were allowed to customise `article' every second day so as (in her or his opinion) to improve the layout; or because another user wanted to write a document in a different language or typeset one with different fonts. \subsection{\TeX{} itself} \label{sec:tex} We have modelled our policies on those of the \TeX{} system since this has for some time now been widely acknowledged as a very stable and high quality typesetting system. The distribution policy set up by Donald Knuth for \TeX{} has the following features: \begin{itemize} \item There is a clearly specified method for changing parts of the software by the use of `change files'. \item Although arbitrary changes are allowed, the resulting program can be called \TeX{} only if its functionality is precisely the same as that of \TeX{} (i.e.~neither less nor more) in all important areas. \item There are many files in the system that cannot be changed at all (without changing the name): examples are the file plain.tex and the files associated with fonts, including the Metafont source files. \end{itemize} \subsection{Maintaining complexity} \label{sec:compl} Our experience of maintaining \LaTeX{} has shown us just how complex are the interactions between different parts of the system. We have therefore, with lots of help from the bug reports you send in, developed a large suite of test files which we run to check the effects of every change we make. A non-negligible percentage of these test runs give unexpected results and hence show up some unexpected dependency in the system. \section{Some assurances} \label{sec:conc} We are certainly not attempting to stop people reformatting \LaTeX{} documents in any way they wish. There are many ways of customising incoming documents to your personal style that do not involve changing the contents of \LaTeX{}'s standard files; indeed, this freedom is one of the system's many advantages. The simplest way to achieve this is to replace \begin{quotation} \verb|\documentclass{article}|\quad by\quad \verb|\documentclass{myart}| \end{quotation} Nor do we wish to discourage the production of new packages improving on the functionality or implementation of those we distribute. All we ask is that, in the best interests of all \LaTeX{} users, you give your superbly improved class or package file some other name. \section{What do you think?} \label{sec:you} We are interested in your views on the issues raised in this document. The best way to let us know what you think, and to discuss your ideas with others, is to join the \texttt{LaTeX-L} mailing list and send your comments there. To subscribe to this list, mail to: \begin{verbatim} listserv@vm.urz.uni-heidelberg.de \end{verbatim} the following one line message: \begin{verbatim} subscribe LATEX-L \end{verbatim} \end{document}