% \iffalse meta-comment % % Copyright 1989-2009 Johannes L. Braams and any individual authors % listed elsewhere in this file. All rights reserved. % % This file is part of the Babel system. % -------------------------------------- % % It may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer of this work is Johannes Braams. % % The list of all files belonging to the Babel system is % given in the file `manifest.bbl. See also `legal.bbl' for additional % information. % % The list of derived (unpacked) files belonging to the distribution % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. % \fi %%% ==================================================================== %%% @TeX-file{ %%% author = "Johannes L. Braams", %%% version = "1.02", %%% date = "06 January 1997", %%% time = "23:18:11 MET", %%% filename = "tb1401.tex", %%% address = "TeXniek, %%% Kersengaarde 33 %%% 2723 BP Zoetermeer %%% The Netherlands", %%% telephone = "+31 79 352 28 19", %%% FAX = "+31 70 343 23 95", %%% checksum = "33086 238 1209 9472", %%% email = "babel@braams.cistron.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.", %%% } %%% ==================================================================== \NeedsTeXFormat{LaTeX2e} \IfFileExists{ltugboat.cls}{% \documentclass{ltugboat} \def\rtitlex{TUGboat, Volume 14 (1993), No. 1} \def\midrtitle{} \def\PrelimDraftfooter{} \let\TBmaketitle\maketitle \setcounter{page}{60} }{% \documentclass{article} \newcommand\address[1]{} \newcommand\netaddress[1]{} \newcommand\TUB{\textsl{TUGboat\/}} \newcommand\TeXhax{\TeX hax} \newcommand{\plain}{\texttt{plain}}} \usepackage{shortvrb} \MakeShortVerb{\|} % \newcommand{\file}[1]{\texttt{#1}} \newcommand{\Lopt}[1]{\textsf{#1}} \newcommand{\babel}{\textsf{babel}} \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{\bsl}{\protect\bslash} \begin{document} \title{An update on the \babel\ system} \author{Johannes Braams} \address{% \TeX niek\\ Kersengaarde 33\\ 2723 BP Zoetermeer\\ The Netherlands} \netaddress{babel@braams.cistron.nl} \date{06 January 1997 \\ Version 1.02} \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 |\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 \file{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 |\selectlanguage| macro is that it now stores the name of the current language in the control sequence |\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 |\string| is necessary because |\languagename| returns the name with characters of category code \texttt{12} (other). \subsection*{Saving macro definitions} A new way of handling macros that are temporarily \emph{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, |\babel@savevariable|\meta{register} and |\babel@save|\meta{macro}, append code to |\originalTeX|. This code restores the value (or meaning) of what was saved when |\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 |\dospecials| (and |\@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 |\babel@add@special| and |\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 |\extrasenglish|. This feature is now provided by the macro\\ |\addto{|\meta{control sequence}|}{|\meta{\TeX\ code}|}|. It is now used throughout the language-specific files to build the macros |\extras|\meta{lang} and |\noextras|\meta{lang}. The support macros |\allowhyphens|,\\ |\set@low@box| and |\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 \file{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 \file{hyphen.doc} that were needed for different combinations of versions of \TeX\ and \file{plain.tex} or \file{lplain.tex}. This has been changed. In the current version only two different files are derived from \file{hyphen.doc}. They are \file{babel.switch} and \file{babel.hyphen}.\\ The file \file{babel.switch} is needed for people who can't build a new format or don't have \TeX\ version 3. The file \file{babel.hyphen} should be loaded into the format by ini\TeX. It provides the macros from \file{babel.switch}, but additionally it reads the file \file{language.dat}, which specifies the languages for which hyphenation patterns should be loaded. In the previous release the file \file{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 \file{babel.com} by including the docstrip option \meta{names} when stripping the file \file{babel.doc}. With the release of the new version of Frank Mittelbach's \texttt{doc} package the stripped files are no longer distributed. The distribution of babel now includes a file \file{install.babel} with which you can produce them (give the command \file{tex install.babel}). \section{Changes to the language specific files} Bernd Raichle has invented a solution for things like |\char"45| when the |"| 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 |"|. A few terms have been added to the |\captions|\meta{...} macros, again following \file{german.tex}. These terms are |\prefacename|, |\seename| and |\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 |"e|, where a `trema' should be produced and |\"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, \emph{Babel, a multilingual style-option system for use with \LaTeX's standard document styles}, \emph{TUGboat} 12 (1991) \#2, p.~291--301. \bibitem{ilatex}Joachim Schrod, \emph{International \LaTeX\ is ready to use}, \emph{TUGboat} 11 (1990) \#1, p.~87--90. \end{thebibliography} \end{document}