% \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}