% \iffalse meta-comment
%
% Copyright (C) 1989-1994 by Johannes Braams
% All rights reserved.
% For additional copyright information see further down in this file.
% 
% This file is part of the Babel system, release 3.4 patchlevel 1
% ---------------------------------------------------------------
% 
% This file is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% 
% 
% IMPORTANT NOTICE:
% 
% For error reports in case of UNCHANGED versions see readme file.
% 
% Please do not request updates from me directly.  Distribution is
% done through Mail-Servers and TeX organizations.
% 
% You are not allowed to change this file.
% 
% You are allowed to distribute this file under the condition that
% it is distributed together with all files mentioned in manifest.txt.
% 
% If you receive only some of these files from someone, complain!
% 
% You are NOT ALLOWED to distribute this file alone.  You are NOT
% ALLOWED to take money for the distribution or use of either this
% file or a changed version, except for a nominal charge for copying
% etc.
% \fi
%%% ====================================================================
%%%  @TeX-file{
%%%     author          = "Johannes L. Braams",
%%%     version         = "1.0",
%%%     date            = "22 July 1993",
%%%     time            = "06:52:00 MET",
%%%     filename        = "babel-new.tex",
%%%     address         = "PTT Research
%%%                        St. Paulusstraat 4
%%%                        2264 XZ Leidschendam
%%%                        The Netherlands",
%%%     telephone       = "(70) 3325051",
%%%     FAX             = "(70) 3326477",
%%%     checksum        = "63622 219 1204 9149",
%%%     email           = "J.L.Braams@research.ptt.nl (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "",
%%%     supported       = "yes",
%%%     abstract        = "",
%%%     docstring       = "The update article on babel that appeared
%%%                        in TUGboat Volume 14 No 1.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
\documentstyle{ltugboat}
\ifx\undefined\selectfont
\else
    \def\tensl{\shape{sl}\size{10}{12pt}\selectfont}
\fi
%
\makeatletter
%  -------------------------------------------------
%  Definitions copied from doc.sty by FMi
%  -------------------------------------------------
{\obeyspaces%
\gdef\meta{\begingroup\obeyspaces%
\def {\egroup\space\hbox\bgroup\it}\m@ta}}
\def\m@ta#1{\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup\endgroup}
%
{\catcode`\|=\z@ \catcode`\\=12|gdef|bslash{\}}
%
\makeatother

\newcommand{\babel}{{\sf babel}}
\newcommand{\bsl}{\protect\bslash}

\begin{document}
\title{An update on the \babel\ system}
\address{PTT Research Neher laboratories\\
         P.O. Box 421\\
         2260 AK Leidschendam}
\netaddress{J.L.Braams@research.ptt.nl}
\date{\today}
\maketitle

\begin{abstract}
  This article describes the changes that have been made to the \babel\
  system, since the article describing the system appeared in \TUB\
  Volume 12, number 2. This article announces the release of a new
  version of the \babel\ system.
\end{abstract}

\section{Introduction}

Since the publication of the \babel\ system in \TUB~\cite{bab} several
changes have occurred. With the new release of \LaTeX\ -- which appeared at
the end of 1991 -- the internationalised version I\LaTeX, prepared by
Joachim Schrod~\cite{ilatex} was withdrawn. But some of its
functionality was still needed, so a modification of the \babel\
system was necessary.

Besides this a couple of bugs were reported and had to be fixed. The
major problem was that the language changing commands were not
`local', they contained global definitions. In the current version
these commands obey grouping correctly.

Some macros that formerly were in language-specific files have been
moved to the core of the system, because they are being used in
several language-specific files.

\section{Changes to the core of \babel}

The changes to the core of the \babel\ system are the most extensive.

\subsection*{{\tt\bsl selectlanguage}}
The \babel\ user-command \verb=\selectlanguage= now also accepts a
control sequence as its argument. This was included to provide
compatibility for users who were used to the syntax of the original
{\tt german.tex}, but wanted to switch to \babel.  The escape
character is `peeled off' and the name of the control sequence is then
used as the name of the language to select.

Another change to the \verb=\selectlanguage= macro is that it now
stores the name of the current language in the control sequence
\verb=\languagename=. The contents of this control sequence could be
tested in the following way:

\begin{verbatim}
  \edef\tmp{\string english}
  \ifx\languagename\tmp
    ...
  \else
    ...
  \fi
\end{verbatim}

The construction with \verb=\string= is necessary because
\verb=\languagename= returns the name with characters of category code
{\tt 12} (other).

\subsection*{Saving macro definitions}

A new way of handling macros that are temporarily {\em re\/}defined
was developed by Bernd Raichle and included in the core of the \babel\
system. Two new macros, for use in the language-specific files have
been introduced.\\
These macros, \verb=\babel@savevariable=\meta{register} and
\verb=\babel@save=\meta{macro}, append code to \verb=\originalTeX=.
This code restores the value (or meaning) of what was saved when
\verb=\originalTeX= was executed.

\subsection*{Special characters}

Some of the language-specific files introduce one or more characters
that are special in some way. Such characters have to be
added to \verb=\dospecials= (and \verb=\@sanitize= too for \LaTeX)
whenever their special meaning is activated. But, they may have to be
removed again when another language, which doesn't use them, is in
effect.

To this end two new control sequences, that are meant to be used in
the language-specific files are introduced. They are
\verb=\babel@add@special= and \verb=\babel@remove@special= and perform
the necessary tasks.

\subsection*{Additional facilities}

A specific request from Joachim Schrod for \babel, was the possibility
to extend the definition of a control sequence on the fly. It should,
for instance, be possible that the user adds a macro of his
own to the definition of \verb=\extrasenglish=.

This feature is now provided by the macro \verb=\addto{=\meta{control
    sequence}\verb=}{=\meta{\TeX\ code}\verb=}=. It is now used
throughout the language-specific files to build the macros
\verb=\extras=\meta{lang} and \verb=\noextras=\meta{lang}.

The support macros \verb=\allowhyphens=, \verb=\set@low@box= and
\verb=\save@sf@q= have been moved from the language-specific files to
the core of the \babel\ system.

\subsection{The files}

In the previous release a file called {\tt latexhax.com} was provided.
This was needed to provide some macros normally defined by \LaTeX, to
\plain~\TeX\ users. The need for this file has been removed in the
current release of the \babel\ system.

In the previous release of the system, four different files were
provided (all derived from {\tt hyphen.doc} that were needed for
different combinations of versions of \TeX\ and {\tt plain.tex} or
{\tt lplain.tex}. This has been changed. In the current version only
two different files are derived from {\tt hyphen.doc}. They are {\tt
  babel.switch} and {\tt babel.hyphen}. The file {\tt babel.switch} is
needed for people who can't build a new format or don't have \TeX\
version 3. The file {\tt babel.hyphen} should be loaded into the
format by ini\TeX. It provides the macros from {\tt babel.switch}, but
additionally it reads the file {\tt language.dat}, which specifies the
languages for which hyphenation patterns should be loaded.

In the previous release the file {\tt babel.com} contained
redefinitions for a lot of \LaTeX\ macros to replace texts with
control sequences. This has been removed, because it is no longer
necessary for releases of \LaTeX\ dated december 1991 or later.
Those who still have an older release of \LaTeX\ can produce a special
version of {\tt babel.com} by including the docstrip option
\meta{names} when stripping the file {\tt babel.doc}.

With the release of the new version of Frank Mittelbach's {\sf doc}
package the stripped files are no longer distributed. The distribution
of babel now includes a file {\tt install.babel} with which you can
produce them (give the command {\tt tex install.babel}).

\section{Changes to the language specific files}

Bernd Raichle has invented a solution for things like \verb=\char"45=
when the \verb="= is active. His solution (from german 2.3e) has been
included in germanb and is copied for other language specific files
that have an active \verb="=.

A few terms have been added to the \verb=\captions=\meta{...} macros,
again following {\tt german.tex}. These terms are \verb=\prefacename=,
\verb=\seename= and \verb=\seealsoname=. I don't have the correct
translations for all languages yet, but that will be repaired as soon
as someone provides them to me.

For the dutch language the behaviour of the active double quote has
been slightly modified. It has been noted that there is a difference
between \verb="e=, where a `trema' should be produced and \verb=\"u=,
where we should get an `umlaut'. The difference between the two is
that the `trema' should disappear at a hyphenation point, whereas the
`umlaut' should not.

\begin{thebibliography}{9}
  \bibitem{bab} Johannes Braams,
    {\em Babel, a multilingual style-option system for use with
      \LaTeX's standard document styles\/},
    {\em TUGboat\/} 12 (1991) \#2, p.~291--301.
 \bibitem{ilatex}Joachim Schrod,
  {\em International \LaTeX\ is ready to use\/},
  {\em TUGboat\/} 11 (1990) \#1, p.~87--90.
\end{thebibliography}
\end{document}
