summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/babel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:49:28 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:49:28 +0000
commitd780c57e68c80655669a3b01af46b9978f5698ef (patch)
tree7eb9b6d2291e813296b41ae01eb7872442b78e9d /Master/texmf-dist/source/generic/babel
parent465c3a91c12b03e3e44ed760e4356fa340f830b8 (diff)
trunk/Master/texmf-dist/source/generic
git-svn-id: svn://tug.org/texlive/trunk@115 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/babel')
-rw-r--r--Master/texmf-dist/source/generic/babel/athnum.dtx278
-rw-r--r--Master/texmf-dist/source/generic/babel/babel.drv188
-rw-r--r--Master/texmf-dist/source/generic/babel/babel.dtx5793
-rw-r--r--Master/texmf-dist/source/generic/babel/babel.ins250
-rw-r--r--Master/texmf-dist/source/generic/babel/bahasa.dtx243
-rw-r--r--Master/texmf-dist/source/generic/babel/bahasa.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/base.ins299
-rw-r--r--Master/texmf-dist/source/generic/babel/basque.dtx390
-rw-r--r--Master/texmf-dist/source/generic/babel/basque.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/bbcompat.dtx261
-rw-r--r--Master/texmf-dist/source/generic/babel/bbidxglo.dtx124
-rw-r--r--Master/texmf-dist/source/generic/babel/bbplain.dtx717
-rw-r--r--Master/texmf-dist/source/generic/babel/breton.dtx365
-rw-r--r--Master/texmf-dist/source/generic/babel/breton.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/bulgarian.dtx1037
-rw-r--r--Master/texmf-dist/source/generic/babel/bulgarian.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/catalan.dtx712
-rw-r--r--Master/texmf-dist/source/generic/babel/catalan.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/croatian.dtx226
-rw-r--r--Master/texmf-dist/source/generic/babel/croatian.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/czech.dtx276
-rw-r--r--Master/texmf-dist/source/generic/babel/czech.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/danish.dtx304
-rw-r--r--Master/texmf-dist/source/generic/babel/danish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/dutch.dtx560
-rw-r--r--Master/texmf-dist/source/generic/babel/dutch.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/english.dtx451
-rw-r--r--Master/texmf-dist/source/generic/babel/english.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/esperanto.dtx341
-rw-r--r--Master/texmf-dist/source/generic/babel/esperanto.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/estonian.dtx426
-rw-r--r--Master/texmf-dist/source/generic/babel/estonian.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/finnish.dtx362
-rw-r--r--Master/texmf-dist/source/generic/babel/finnish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/frenchb.dtx2477
-rw-r--r--Master/texmf-dist/source/generic/babel/frenchb.ins155
-rw-r--r--Master/texmf-dist/source/generic/babel/galician.dtx476
-rw-r--r--Master/texmf-dist/source/generic/babel/galician.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/german.ins149
-rw-r--r--Master/texmf-dist/source/generic/babel/germanb.dtx543
-rw-r--r--Master/texmf-dist/source/generic/babel/greek.dtx864
-rw-r--r--Master/texmf-dist/source/generic/babel/greek.fdd349
-rw-r--r--Master/texmf-dist/source/generic/babel/greek.ins158
-rw-r--r--Master/texmf-dist/source/generic/babel/grmath.dtx168
-rw-r--r--Master/texmf-dist/source/generic/babel/grsymb.dtx131
-rw-r--r--Master/texmf-dist/source/generic/babel/heb209.dtx165
-rw-r--r--Master/texmf-dist/source/generic/babel/hebinp.dtx550
-rw-r--r--Master/texmf-dist/source/generic/babel/hebrew.dtx3329
-rw-r--r--Master/texmf-dist/source/generic/babel/hebrew.fdd1297
-rw-r--r--Master/texmf-dist/source/generic/babel/hebrew.ins215
-rw-r--r--Master/texmf-dist/source/generic/babel/icelandic.dtx749
-rw-r--r--Master/texmf-dist/source/generic/babel/icelandic.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/interlingua.dtx207
-rw-r--r--Master/texmf-dist/source/generic/babel/interlingua.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/irish.dtx218
-rw-r--r--Master/texmf-dist/source/generic/babel/irish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/italian.dtx857
-rw-r--r--Master/texmf-dist/source/generic/babel/italian.ins155
-rw-r--r--Master/texmf-dist/source/generic/babel/latin.dtx623
-rw-r--r--Master/texmf-dist/source/generic/babel/latin.ins150
-rw-r--r--Master/texmf-dist/source/generic/babel/lsorbian.dtx239
-rw-r--r--Master/texmf-dist/source/generic/babel/magyar.dtx1411
-rw-r--r--Master/texmf-dist/source/generic/babel/magyar.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/ngermanb.dtx357
-rw-r--r--Master/texmf-dist/source/generic/babel/norsk.dtx453
-rw-r--r--Master/texmf-dist/source/generic/babel/norsk.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/polish.dtx563
-rw-r--r--Master/texmf-dist/source/generic/babel/polish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/portuges.dtx473
-rw-r--r--Master/texmf-dist/source/generic/babel/portuges.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/romanian.dtx232
-rw-r--r--Master/texmf-dist/source/generic/babel/romanian.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/russianb.dtx1238
-rw-r--r--Master/texmf-dist/source/generic/babel/russianb.ins147
-rw-r--r--Master/texmf-dist/source/generic/babel/samin.dtx232
-rw-r--r--Master/texmf-dist/source/generic/babel/samin.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/scottish.dtx209
-rw-r--r--Master/texmf-dist/source/generic/babel/scottish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/serbian.dtx312
-rw-r--r--Master/texmf-dist/source/generic/babel/serbian.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/slovak.dtx417
-rw-r--r--Master/texmf-dist/source/generic/babel/slovak.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/slovene.dtx302
-rw-r--r--Master/texmf-dist/source/generic/babel/slovene.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/sorbian.ins149
-rw-r--r--Master/texmf-dist/source/generic/babel/spanish.dtx2638
-rw-r--r--Master/texmf-dist/source/generic/babel/spanish.ins151
-rw-r--r--Master/texmf-dist/source/generic/babel/swedish.dtx442
-rw-r--r--Master/texmf-dist/source/generic/babel/swedish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/turkish.dtx309
-rw-r--r--Master/texmf-dist/source/generic/babel/turkish.ins148
-rw-r--r--Master/texmf-dist/source/generic/babel/ukraineb.dtx1158
-rw-r--r--Master/texmf-dist/source/generic/babel/ukraineb.ins147
-rw-r--r--Master/texmf-dist/source/generic/babel/user.drv170
-rw-r--r--Master/texmf-dist/source/generic/babel/usorbian.dtx360
-rw-r--r--Master/texmf-dist/source/generic/babel/welsh.dtx207
-rw-r--r--Master/texmf-dist/source/generic/babel/welsh.ins148
97 files changed, 44344 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/babel/athnum.dtx b/Master/texmf-dist/source/generic/babel/athnum.dtx
new file mode 100644
index 00000000000..7a088cb5d65
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/athnum.dtx
@@ -0,0 +1,278 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+%% \CheckSum{125}
+%% \CharacterTable
+%\iffalse
+%
+%% This is file `athnum.dtx'
+%% (c) 1997-2005 Apostolos Syropoulos.
+%% All rights reserved.
+%
+% Please report errors or suggestions for improvement to
+%
+% Apostolos Syropoulos
+% 366, 28th October Str.
+% GR-671 00 Xanthi, GREECE
+% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
+%
+%\fi
+%
+% \iffalse
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\def\PiIt#1{{%
+ \newdimen\boxW \newdimen\boxH
+ \settowidth{\boxW}{#1}%
+ \settoheight{\boxH}{#1}%
+ \addtolength{\boxW}{0.8pt}
+ \vbox{%
+ \hrule width\boxW\hbox{%
+ \vrule height\boxH\mbox{#1}%
+ \vrule height\boxH}}\kern.5pt}}
+\GetFileInfo{athnum.drv}
+\begin{document}
+ \DocInput{athnum.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+%\title{Athenian Numerals II\footnote{The documentation of this
+% package is essentially the same as that of the package `grnumalt'.
+% The `II' serves as a means to distinguish the two documents.}}
+% \author{Apostolos Syropoulos\\366, 28th October Str.\\
+% GR-671 00 Xanthi, HELLAS\\ Email:\texttt{apostolo@platon.ee.duth.gr}}
+% \date{2003/08/24}
+%\maketitle
+%
+%\MakeShortVerb{\|}
+%
+%\section{Introduction}
+%
+% This \LaTeX\ package implements the macro
+% \DescribeMacro{\athnum}
+% |\athnum|. The macro transforms an Arabic numeral, i.e., the kind
+% of numerals we all use (e.g., 1, 5, 789 etc), to the corresponding
+% {\itshape Athenian} numeral. Athenian numerals were in use only in
+% ancient Athens. The package can be used only in conjunction with the
+% |greek| option of the |babel| package.
+%
+%\section{The Numbering System}
+%
+% The athenian numbering system, like the roman one, employs
+% letters to denote important numbers. Multiple occurrence of a letter denote
+% a multiple of the ``important'' number, e.g., the letter I denotes 1, so
+% III denotes 3. Here are the basic digits used in the Athenian numbering
+% system:
+% \begin{itemize}
+% \item I denotes the number one (1)
+% \item $\Pi$ denotes the number five (5)
+% \item $\Delta$ denotes the number ten (10)
+% \item H denotes the number one hundred (100)
+% \item X denotes the number one thousand (1000)
+% \item M denotes the number ten thousands (10000)
+%\end{itemize}
+% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$,
+% denote five times their original value, e.g., the symbol
+% \PiIt{X}, denotes the number 5000, and the symbol
+% \PiIt{$\Delta$}, denotes the number 50. It must be noted that
+% the numbering system does not provide negative numerals or a symbol for
+% zero.
+%
+% The Athenian numbering system is described, among others, in an article in
+% Encyclopedia $\Delta o\mu\acute{\eta}$, Vol. 2, page 280, 7th edition,
+% Athens, October 2, 1975.
+%
+% \section{The Code}
+% Before we do anything further, we have to identify the package.
+% \StopEventually
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}[1996/01/01]
+\ProvidesPackage{athnum}[2003/08/24\space v1.1]
+\typeout{Package: `athnum' v1.1\space <2003/08/24> (A. Syropoulos)}
+% \end{macrocode}
+% Next we check to see if the |babel| package is loaded with at least
+% the |greek| option. In case it isn't, we opt to produce an error message.
+% \begin{macrocode}
+\@ifpackagewith{babel}{greek}{}{%
+ \@ifpackagewith{babel}{polutonikogreek}{}{%
+ \PackageError{athnum}{%
+ `greek' option of the `babel'\MessageBreak
+ package hasn't been loaded}{%
+ The commands provided by this package\MessageBreak
+ are specially designed for greek language\MessageBreak
+ typesetting with the `babel' package. Load\MessageBreak
+ it with at least the `greek' option.}\relax
+ }}
+% \end{macrocode}
+%
+% As it is mentioned in the introduction, the Athenian numerals employ
+% some special digits. These digits are included in the |cb| fonts of
+% Claudio Beccari, and so we must provide access commands.
+% \begin{macrocode}
+\DeclareTextCommand{\PiDelta}{LGR}{\char"02\relax}
+\DeclareTextCommand{\PiEta}{LGR}{\char"03\relax}
+\DeclareTextCommand{\PiChi}{LGR}{\char"04\relax}
+\DeclareTextCommand{\PiMu}{LGR}{\char"05\relax}
+% \end{macrocode}
+%\begin{macro}{\@@athnum}
+% Now, we turn our attention to the definition of the macro
+% |\@@athnum|. This macro uses one integer variable (or counter in
+% \TeX's jargon.)
+% \begin{macrocode}
+\newcount\@ath@num
+% \end{macrocode}
+% The macro |\@@athnum| is also defined as a robust command.
+% \begin{macrocode}
+\DeclareRobustCommand*{\@@athnum}[1]{%
+% \end{macrocode}
+% After assigning to variable |\@ath@num| the value of the macro's argument,
+%we make sure that the argument is in the expected range, i.e., it is greater
+% than zero, and less or equal to $249999$. In case it isn't, we simply
+% produce a |\space|, warn the user about it and quit. Although, the
+% |\athnum| macro is capable to produce an Athenian numeral for even greater
+% intergers, the following argument by Claudio Beccari convised me to place
+% this above upper limit:
+% \begin{quote}
+% According to psychological perception studies (that ancient Athenians
+% and Romans perfectly knew without needing to study Freud and Jung)
+% living beings (which includes at least all vertebrates, not only
+% humans) can perceive up to four randomly set objects of the same kind
+% without the need of counting, the latter activity being a specific
+% acquired ability of human kind; the biquinary numbering notation
+% used by the Athenians and the Romans exploits this natural
+% characteristic of human beings.
+% \end{quote}
+% \begin{macrocode}
+ \@ath@num#1\relax
+ \ifnum\@ath@num<\@ne%
+ \space%
+ \PackageWarning{athnum}{%
+ Illegal value (\the\@ath@num) for athenian numeral}%
+ \else\ifnum\@ath@num>249999%
+ \space%
+ \PackageWarning{athnum}{%
+ Illegal value (\the\@ath@num) for athenian numeral}%
+ \else
+% \end{macrocode}
+% Having done all the necessary checks, we are now ready to do the actual
+% computation. If the number is greater than $49999$, then it certainly
+% has at least one \PiIt{M} ``digit''. We find all such digits by continuously
+% subtracting $50000$ from |\@ath@num|, until |\@ath@num| becomes less than
+% $50000$.
+% \begin{macrocode}
+ \@whilenum\@ath@num>49999\do{%
+ \PiMu\advance\@ath@num-50000}%
+% \end{macrocode}
+% We now check for tens of thousands.
+% \begin{macrocode}
+ \@whilenum\@ath@num>9999\do{%
+ M\advance\@ath@num-\@M}%
+% \end{macrocode}
+% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it
+% is easy to check it out and produce the corresponding numeral in case it does
+% have one.
+% \begin{macrocode}
+ \ifnum\@ath@num>4999%
+ \PiChi\advance\@ath@num-5000%
+ \fi\relax
+% \end{macrocode}
+% Next, we check for thousands, the same way we checked for tens of thousands.
+% \begin{macrocode}
+ \@whilenum\@ath@num>999\do{%
+ Q\advance\@ath@num-\@m}%
+% \end{macrocode}
+% Like the five thousands, a numeral can have at most one \PiIt{H} ``digit''
+% (equivalent to 500).
+% \begin{macrocode}
+ \ifnum\@ath@num>499%
+ \PiEta\advance\@ath@num-500%
+ \fi\relax
+% \end{macrocode}
+% It is time to check hundreds, which follow the same pattern as thousands
+% \begin{macrocode}
+ \@whilenum\@ath@num>99\do{%
+ H\advance\@ath@num-100}%
+% \end{macrocode}
+% A numeral can have only one \PiIt{$\Delta$} ``digit'' (equivalent to 50).
+% \begin{macrocode}
+ \ifnum\@ath@num>49%
+ \PiDelta\advance\@ath@num-50%
+ \fi\relax
+% \end{macrocode}
+% Let's check now decades.
+% \begin{macrocode}
+ \@whilenum\@ath@num>9\do{%
+ D\advance\@ath@num by-10}%
+% \end{macrocode}
+% We check for five and, finally, for the digits 1, 2, 3, and 4.
+% \begin{macrocode}
+ \@whilenum\@ath@num>4\do{%
+ P\advance\@ath@num-5}%
+ \ifcase\@ath@num\or I\or II\or III\or IIII\fi%
+ \fi\fi}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\@athnum}
+% The command |\@athnum| has one argument, which
+% is a counter. It calls the command |\@@athnum| to process the value of
+% the counter.
+% \begin{macrocode}
+\def\@athnum#1{%
+ \expandafter\@@athnum\expandafter{\the#1}}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\athnum}
+% The command |\athnum| is a wrapper that declares
+% a new counter in a local scope, assigns to it the argument of the command
+% and calls the macro |\@athnum|. This way the command can process correctly
+% either a number or a counter.
+% \begin{macrocode}
+\def\athnum#1{%
+ \@ath@num#1\relax
+ \@athnum{\@ath@num}}
+%</package>
+% \end{macrocode}
+%\end{macro}
+%
+% \section*{Acknowledgment}
+% I would like to thank Claudio Beccari for reading the documentation
+% and for his very helpful suggestions. In addition, Antonis Tsolomitis
+% spotted a bug in the first version, which is corrected in the present
+% version.
+% \section*{Dedication}
+% I would like to dedicate this piece of work to my son
+% \begin{center}Demetrios-Georgios.\end{center}
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/babel.drv b/Master/texmf-dist/source/generic/babel/babel.drv
new file mode 100644
index 00000000000..ce7f645b0a3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/babel.drv
@@ -0,0 +1,188 @@
+%%
+%% This is file `babel.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% babel.dtx (with options: `driver')
+%%
+%% This file was generated from file(s) of the Babel system.
+%% ---------------------------------------------------------
+%%
+%% Copyright (C) 2004 Johannes Braams. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+%%
+%% File 'babel.dtx'
+%%\ProvidesFile{babel.dtx}[2005/05/21 v3.8g The Babel package]
+%% Babel package for LaTeX2e.
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% all rights reserved.
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+\ifx\ProvidesFile\@undefined
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \wlog{File: #1 #4 #3 <#2>}%
+ \let\ProvidesFile\@undefined
+ }
+\fi
+\ProvidesFile{babel.drv}
+ [2005/05/21 v3.8g %
+]
+\documentclass{ltxdoc}
+\usepackage{url,t1enc,supertabular}
+\usepackage[icelandic,english]{babel}
+\DoNotIndex{\!,\',\,,\.,\-,\:,\;,\?,\/,\^,\`,\@M}
+\DoNotIndex{\@,\@ne,\@m,\@afterheading,\@date,\@endpart}
+\DoNotIndex{\@hangfrom,\@idxitem,\@makeschapterhead,\@mkboth}
+\DoNotIndex{\@oddfoot,\@oddhead,\@restonecolfalse,\@restonecoltrue}
+\DoNotIndex{\@starttoc,\@unused}
+\DoNotIndex{\accent,\active}
+\DoNotIndex{\addcontentsline,\advance,\Alph,\arabic}
+\DoNotIndex{\baselineskip,\begin,\begingroup,\bf,\box,\c@secnumdepth}
+\DoNotIndex{\catcode,\centering,\char,\chardef,\clubpenalty}
+\DoNotIndex{\columnsep,\columnseprule,\crcr,\csname}
+\DoNotIndex{\day,\def,\dimen,\discretionary,\divide,\dp,\do}
+\DoNotIndex{\edef,\else,\@empty,\end,\endgroup,\endcsname,\endinput}
+\DoNotIndex{\errhelp,\errmessage,\expandafter,\fi,\filedate}
+\DoNotIndex{\fileversion,\fmtname,\fnum@figure,\fnum@table,\fontdimen}
+\DoNotIndex{\gdef,\global}
+\DoNotIndex{\hbox,\hidewidth,\hfil,\hskip,\hspace,\ht,\Huge,\huge}
+\DoNotIndex{\ialign,\if@twocolumn,\ifcase,\ifcat,\ifhmode,\ifmmode}
+\DoNotIndex{\ifnum,\ifx,\immediate,\ignorespaces,\input,\item}
+\DoNotIndex{\kern}
+\DoNotIndex{\labelsep,\Large,\large,\labelwidth,\lccode,\leftmargin}
+\DoNotIndex{\lineskip,\leavevmode,\let,\list,\ll,\long,\lower}
+\DoNotIndex{\m@ne,\mathchar,\mathaccent,\markboth,\month,\multiply}
+\DoNotIndex{\newblock,\newbox,\newcount,\newdimen,\newif,\newwrite}
+\DoNotIndex{\nobreak,\noexpand,\noindent,\null,\number}
+\DoNotIndex{\onecolumn,\or}
+\DoNotIndex{\p@,par, \parbox,\parindent,\parskip,\penalty}
+\DoNotIndex{\protect,\ps@headings}
+\DoNotIndex{\quotation}
+\DoNotIndex{\raggedright,\raise,\refstepcounter,\relax,\rm,\setbox}
+\DoNotIndex{\section,\setcounter,\settowidth,\scriptscriptstyle}
+\DoNotIndex{\sfcode,\sl,\sloppy,\small,\space,\spacefactor,\strut}
+\DoNotIndex{\string}
+\DoNotIndex{\textwidth,\the,\thechapter,\thefigure,\thepage,\thepart}
+\DoNotIndex{\thetable,\thispagestyle,\titlepage,\tracingmacros}
+\DoNotIndex{\tw@,\twocolumn,\typeout,\uppercase,\usecounter}
+\DoNotIndex{\vbox,\vfil,\vskip,\vspace,\vss}
+\DoNotIndex{\widowpenalty,\write,\xdef,\year,\z@,\z@skip}
+\makeatletter
+\gdef\dlqq{{\setbox\tw@=\hbox{,}\setbox\z@=\hbox{''}%
+ \dimen\z@=\ht\z@ \advance\dimen\z@-\ht\tw@
+ \setbox\z@=\hbox{\lower\dimen\z@\box\z@}\ht\z@=\ht\tw@
+ \dp\z@=\dp\tw@ \box\z@\kern-.04em}}
+\@addtoreset{CodelineNo}{section}
+\renewcommand\theCodelineNo{%
+ \reset@font\scriptsize\thesection.\arabic{CodelineNo}}
+\renewcommand\codeline@wrindex[1]{\if@filesw
+ \immediate\write\@indexfile
+ {\string\indexentry{#1}%
+ {\number\c@section.\number\c@CodelineNo}}\fi}
+\renewenvironment{theglossary}{%
+ \glossary@prologue%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {}
+\makeatother
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Babel{\textsf{Babel}}
+\newcommand*\m[1]{\mbox{$\langle$\it#1\/$\rangle$}}
+\newcommand*\langvar{\m{lang}}
+\newcommand*\note[1]{}
+\newcommand*\bsl{\protect\bslash}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\Lenv[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\cls[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+\newcommand*\langdeffile[1]{%
+ \clearpage
+ \DocInput{#1}}
+\DisableCrossrefs
+\RecordChanges
+\CodelineIndex
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+\DocInput{babel.dtx}
+^^A% \changes{babel~3.6i}{1997/02/22}{Added kannada}
+\langdeffile{esperanto.dtx}
+\langdeffile{interlingua.dtx}
+\langdeffile{dutch.dtx}
+\langdeffile{english.dtx}
+\langdeffile{germanb.dtx}
+\langdeffile{ngermanb.dtx}
+\langdeffile{breton.dtx}
+\langdeffile{welsh.dtx}
+\langdeffile{irish.dtx}
+\langdeffile{scottish.dtx}
+\langdeffile{greek.dtx}
+\langdeffile{frenchb.dtx}
+\langdeffile{italian.dtx}
+\langdeffile{latin.dtx}
+\langdeffile{portuges.dtx}
+\langdeffile{spanish.dtx}
+\langdeffile{catalan.dtx}
+\langdeffile{galician.dtx}
+\langdeffile{basque.dtx}
+\langdeffile{romanian.dtx}
+\langdeffile{danish.dtx}
+\langdeffile{icelandic.dtx}
+\langdeffile{norsk.dtx}
+\langdeffile{swedish.dtx}
+\langdeffile{samin.dtx}
+\langdeffile{finnish.dtx}
+\langdeffile{magyar.dtx}
+\langdeffile{estonian.dtx}
+\langdeffile{croatian.dtx}
+\langdeffile{czech.dtx}
+\langdeffile{polish.dtx}
+\langdeffile{serbian.dtx}
+\langdeffile{slovak.dtx}
+\langdeffile{slovene.dtx}
+\langdeffile{russianb.dtx}
+\langdeffile{bulgarian.dtx}
+\langdeffile{ukraineb.dtx}
+\langdeffile{lsorbian.dtx}
+\langdeffile{usorbian.dtx}
+\langdeffile{turkish.dtx}
+\langdeffile{hebrew.dtx}
+\DocInput{hebinp.dtx}
+\DocInput{hebrew.fdd}
+\DocInput{heb209.dtx}
+\langdeffile{bahasa.dtx}
+\clearpage
+\DocInput{bbplain.dtx}
+\clearpage
+\def\filename{index}
+\PrintIndex
+\clearpage
+\def\filename{changes}
+\PrintChanges
+\end{document}
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
+%%
+%% End of file `babel.drv'.
diff --git a/Master/texmf-dist/source/generic/babel/babel.dtx b/Master/texmf-dist/source/generic/babel/babel.dtx
new file mode 100644
index 00000000000..aa0a577b1a8
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/babel.dtx
@@ -0,0 +1,5793 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{3805}
+%%
+% \def\filename{babel.dtx}
+% \let\thisfilename\filename
+%
+%\iffalse
+% \changes{babel~3.5g}{1996/10/10}{We need at least \LaTeX\ from
+% December 1994}
+% \changes{babel~3.6k}{1999/03/18}{We need at least \LaTeX\ from
+% June 1998}
+% \begin{macrocode}
+%<+package>\NeedsTeXFormat{LaTeX2e}[1998/06/01]
+% \end{macrocode}
+%
+%% File 'babel.dtx'
+%\fi
+%%\ProvidesFile{babel.dtx}[2005/05/21 v3.8g The Babel package]
+%\iffalse
+%
+% Babel DOCUMENT-STYLE option for LaTeX version 2.09 or plain TeX;
+%% Babel package for LaTeX2e.
+%
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% all rights reserved.
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%<*filedriver>
+\documentclass{ltxdoc}
+\usepackage{supertabular}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Babel{\textsf{Babel}}
+\newcommand*\m[1]{\mbox{$\langle$\it#1\/$\rangle$}}
+\newcommand*\langvar{\m{lang}}
+\newcommand*\note[1]{}
+\newcommand*\bsl{\protect\bslash}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\Lenv[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\cls[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{babel.dtx}
+\end{document}
+%</filedriver>
+% \changes{babel~3.7a}{1997/04/16}{Make multiple loading of
+% \file{babel.def} impossible}
+% \begin{macrocode}
+%<*core>
+\ifx\bbl@afterfi\@undefined
+\else
+ \bbl@afterfi\endinput
+\fi
+%</core>
+% \end{macrocode}
+%<*dtx>
+\ProvidesFile{babel.dtx}
+%</dtx>
+%\fi
+%
+% \GetFileInfo{babel.dtx}
+%
+% \changes{babel~2.0a}{1990/04/02}{Added text about \file{german.sty}}
+% \changes{babel~2.0b}{1990/04/18}{Changed order of code to prevent
+% plain \TeX from seeing all of it}
+% \changes{babel~2.1}{1990/04/24}{Modified user interface,
+% \cs{langTeX} no longer necessary}
+% \changes{babel~2.1a}{1990/05/01}{Incorporated Nico's comments}
+% \changes{babel~2.1b}{1990/05/01}{rename \cs{language} to
+% \cs{current@language}}
+% \changes{babel~2.1c}{1990/05/22}{abstract for report fixed, missing
+% \texttt{\}}, found by Nicolas Brouard}
+% \changes{babel~2.1d}{1990/07/04}{Missing right brace in definition of
+% abstract environment, found by Werenfried Spit}
+% \changes{babel~2.1e}{1990/07/16}{Incorporated more comments from
+% Nico}
+% \changes{babel~2.2}{1990/07/17}{Renamed \cs{newlanguage} to
+% \cs{addlanguage}}
+% \changes{babel~2.2a}{1990/08/27}{Modified the documentation
+% somewhat}
+% \changes{babel~3.0}{1991/04/23}{Moved part of the code to hyphen.doc
+% in preparation for \TeX~3.0}
+% \changes{babel~3.0a}{1991/05/21}{Updated comments in various places}
+% \changes{babel~3.0b}{1991/05/25}{Removed some problems in change log}
+% \changes{babel~3.0c}{1991/07/15}{Renamed \file{babel.sty} and
+% \file{latexhax.sty} to \file{.com}}
+% \changes{babel~3.1}{1991/10/31}{Added the support for active
+% characters and for extending a macro}
+% \changes{babel~3.1}{1991/11/05}{Removed the need for
+% \file{latexhax}}
+% \changes{babel~3.2}{1991/11/10}{Some Changes by br}
+% \changes{babel~3.2a}{1992/02/15}{Fixups of the code and
+% documentation}
+% \changes{babel~3.3}{1993/07/06}{Included driver file, and prepared
+% for distribution}
+% \changes{babel~3.4}{1994/01/30}{Updated for \LaTeXe}
+% \changes{babel~3.4}{1994/02/28}{Added language definition file for
+% bahasa}
+% \changes{babel~3.4b}{1994/05/18}{Added a small driver to be able to
+% process just this file}
+% \changes{babel~3.5a}{1995/02/03}{Provided common code to handle the
+% active double quote}
+% \changes{babel~3.5c}{1995/06/14}{corrected a few typos (PR1652)}
+% \changes{babel~3.5d}{1995/07/02}{Merged glyphs.dtx into this file}
+% \changes{babel~3.5f}{1995/07/13}{repaired a typo}
+% \changes{babel~3.5f}{1996/01/09}{replaced \cs{tmp}, \cs{bbl@tmp} and
+% \cs{bbl@temp} with \cs{bbl@tempa}}
+% \changes{babel~3.5g}{1996/07/09}{replaced \cs{undefined} with
+% \cs{@undefined} to be consistent with \LaTeX}
+% \changes{babel~3.7d}{1999/05/05}{Fixed a few typos in \cs{changes}
+% entries which made typesetting the code impossible}
+% \changes{babel~3.7h}{2001/03/01}{Added a number of missing comment
+% characters which caused spurious white space}
+% \changes{babel~3.8e}{2005/03/24}{Many enhancements to the text by
+% Andrew Young}
+%
+% \title {Babel, a multilingual package for use with \LaTeX's standard
+% document classes\thanks{During the development ideas from Nico
+% Poppelier, Piet van Oostrum and many others have been used.
+% Bernd Raichle has provided many helpful suggestions.}}
+%
+% \author{Johannes Braams\\
+% Kersengaarde 33\\
+% 2723 BP Zoetermeer\\
+% The Netherlands\\
+% \texttt{babel@braams.cistron.nl}}
+%
+% \date{Printed \today}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The standard distribution of \LaTeX\ contains a number of
+% document classes that are meant to be used, but also serve as
+% examples for other users to create their own document classes.
+% These document classes have become very popular among \LaTeX\
+% users. But it should be kept in mind that they were designed for
+% American tastes and typography. At one time they contained a
+% number of hard-wired texts. This report describes \babel{}, a
+% package that makes use of the new capabilities of \TeX\ version 3
+% to provide an environment in which documents can be typeset in
+% a non-American language, or in more than one language.
+% \end{abstract}
+%
+% \begin{multicols}{2}
+% \tableofcontents
+% \end{multicols}
+%
+% \section{The user interface}\label{U-I}
+%
+% The user interface of this package is quite simple. It consists
+% of a set of commands that switch from one language to another, and
+% a set of commands that deal with shorthands. It is also possible
+% to find out what the current language is.
+%
+% \DescribeMacro{\selectlanguage}
+% When a user wants to switch from one language to another he can
+% do so using the macro |\selectlanguage|. This macro takes the
+% language, defined previously by a language definition file, as
+% its argument. It calls several macros that should be defined in
+% the language definition files to activate the special definitions
+% for the language chosen.
+%
+% \DescribeEnv{otherlanguage}
+% The environment \Lenv{otherlanguage} does basically the same as
+% |\selectlanguage|, except the language change is local to the
+% environment. This environment is required for intermixing
+% left-to-right typesetting with right-to-left typesetting.
+% The language to switch to is specified as an
+% argument to |\begin{otherlanguage}|.
+%
+% \DescribeMacro{\foreignlanguage}
+% The command |\foreignlanguage| takes two arguments; the second
+% argument is a phrase to be typeset according to the rules of the
+% language named in its first argument. This command only switches
+% the extra definitions and the hyphenation rules for the language,
+% \emph{not} the names and dates.
+%
+% \DescribeEnv{otherlanguage*}
+% In the environment \Lenv{otherlanguage*} only the typesetting
+% is done according to the rules of the other language, but the
+% text-strings such as `figure', `table', etc. are left as they
+% were set outside this environment.
+%
+% \DescribeEnv{hyphenrules}
+% The environment \Lenv{hyphenrules} can be used to select
+% \emph{only} the hyphenation rules to be used. This can for
+% instance be used to select `nohyphenation', provided that in
+% \file{language.dat} the `language' nohyphenation is defined by
+% loading \file{serohyph.tex}.
+%
+% \DescribeMacro{\languagename}
+% The control sequence |\languagename| contains the name of the
+% current language.
+%
+% \DescribeMacro{\iflanguage}
+% If more than one language is used, it might be necessary to know
+% which language is active at a specific time. This can be checked
+% by a call to |\iflanguage|. This macro takes three arguments.
+% The first argument is the name of a language; the second and
+% third arguments are the actions to take if the result of the test
+% is \texttt{true} or \texttt{false} respectively.
+%
+% \DescribeMacro{\useshorthands}
+% The command |\useshorthands| initiates the definition of
+% user-defined shorthand sequences. It has one argument, the
+% character that starts these personal shorthands.
+%
+% \DescribeMacro{\defineshorthand}
+% The command |\defineshorthand| takes two arguments: the first
+% is a one- or two-character shorthand sequence, and the second is
+% the code the shorthand should expand to.
+%
+% \DescribeMacro{\aliasshorthand}
+% The command |\aliasshorthand| can be used to let another
+% character perform the same functions as the default shorthand
+% character. If one prefers for example to use the character |/|
+% over |"| in typing polish texts, this can be achieved by entering
+% |\aliasshorthand{"}{/}|. \emph{Please note} that the substitute
+% shorthand character must have been declared in the preamble of
+% your document, using a command such as |\useshorthands{/}| in this
+% example.
+%
+% \DescribeMacro{\languageshorthands}
+% The command |\languageshorthands| can be used to switch the
+% shorthands on the language level. It takes one argument, the
+% name of a language. Note that for this to work the language
+% should have been specified as an option when loading the \babel\
+% package.
+%
+% \DescribeMacro{\shorthandon}
+% \DescribeMacro{\shorthandoff}
+% It is sometimes necessary to switch a shorthand
+% character off temporarily, because it must be used in an
+% entirely different way. For this purpose, the user commands
+% |\shorthandoff| and |\shorthandon| are provided. They each take a
+% list of characters as their arguments. The command |\shorthandoff|
+% sets the |\catcode| for each of the characters in its argument to
+% other (12); the command |\shorthandon| sets the |\catcode| to
+% active (13). Both commands only work on `known'
+% shorthand characters. If a character is not known to be a
+% shorthand character its category code will be left unchanged.
+%
+% \DescribeMacro{\languageattribute}
+% This is a user-level command, to be used in the preamble of a
+% document (after |\usepackage[...]{babel}|), that declares which
+% attributes are to be used for a given language. It takes two
+% arguments: the first is the name of the language; the second,
+% a (list of) attribute(s) to used.
+% The command checks whether the language is known in this document
+% and whether the attribute(s) are known for this language.
+%
+% \subsection{Languages supported by \Babel}
+%
+% In the following table all the languages supported by \Babel\ are
+% listed, together with the names of the options with which you can
+% load \babel\ for each language.
+%
+% \begin{center}
+% \tablehead{Language & Option(s)\\\hline}
+% \tabletail{\hline}
+% \begin{supertabular}{l p{8cm}}
+% Afrikaans & afrikaans\\
+% Bahasa & bahasa\\
+% Basque & basque\\
+% Breton & breton\\
+% Bulgarian & bulgarian\\
+% Catalan & catalan\\
+% Croatian & croatian\\
+% Czech & czech\\
+% Danish & danish\\
+% Dutch & dutch\\
+% English & english, USenglish, american, UKenglish,
+% british, canadian, australian, newzealand\\
+% Esperanto & esperanto\\
+% Estonian & estonian\\
+% Finnish & finnish\\
+% French & french, francais, canadien, acadian\\
+% Galician & galician\\
+% German & austrian, german, germanb, ngerman, naustrian\\
+% Greek & greek, polutonikogreek \\
+% Hebrew & hebrew \\
+% Hungarian & magyar, hungarian\\
+% Icelandic & icelandic \\
+% Interlingua & interlingua \\
+% Irish Gaelic & irish\\
+% Italian & italian\\
+%^^A Kannada & kannada \\
+% Latin & latin \\
+% Lower Sorbian & lowersorbian\\
+%^^A Devnagari & nagari \\
+% North Sami & samin \\
+% Norwegian & norsk, nynorsk\\
+% Polish & polish\\
+% Portuguese & portuges, portuguese, brazilian, brazil\\
+% Romanian & romanian\\
+% Russian & russian\\
+%^^A Sanskrit & sanskrit\\
+% Scottish Gaelic & scottish\\
+% Spanish & spanish\\
+% Slovakian & slovak\\
+% Slovenian & slovene\\
+% Swedish & swedish\\
+% Serbian & serbian\\
+%^^A Tamil & tamil \\
+% Turkish & turkish\\
+% Ukrainian & ukrainian\\
+% Upper Sorbian & uppersorbian\\
+% Welsh & welsh\\
+% \end{supertabular}
+% \end{center}
+%
+% For some languages \babel\ supports the options
+% \Lopt{activeacute} and \Lopt{activegrave}; for typestting Russian
+% texts, \babel\ knows about the options \Lopt{LWN} and \Lopt{LCY}
+% to specify the fontencoding of the cyrillic font used. Currently
+% only \Lopt{LWN} is supported.
+%
+% \subsection{Workarounds}
+%
+% If you use the document class \cls{book} \emph{and} you use
+% |\ref| inside the argument of |\chapter|,
+% \LaTeX\ will keep complaining about an undefined
+% label. The reason is that the argument of |\ref| is passed through
+% |\uppercase| at some time during processing. To prevent such
+% problems, you could revert to using uppercase labels, or you can
+% use |\lowercase{\ref{foo}}| inside the argument of |\chapter|.
+%
+% \section{Changes for \LaTeXe}
+%
+% With the advent of \LaTeXe\ the interface to \babel\ in the
+% preamble of the document has changed. With \LaTeX2.09 one used to
+% call up the \babel\ system with a line such as:
+%
+%\begin{verbatim}
+%\documentstyle[dutch,english]{article}
+%\end{verbatim}
+%
+% which would tell \LaTeX\ that the document would be written in
+% two languages, Dutch and English, and that English would be the
+% first language in use.
+%
+% The \LaTeXe\ way of providing the same information is:
+%
+%\begin{verbatim}
+%\documentclass{article}
+%\usepackage[dutch,english]{babel}
+%\end{verbatim}
+%
+% or, making \Lopt{dutch} and \Lopt{english} global options in
+% order to let other packages detect and use them:
+%
+%\begin{verbatim}
+%\documentclass[dutch,english]{article}
+%\usepackage{babel}
+%\usepackage{varioref}
+%\end{verbatim}
+%
+% In this last example, the package \texttt{varioref} will also see
+% the options and will be able to use them.
+%
+% \section{Changes in \Babel\ version 3.7}
+%
+% In \Babel\ version 3.7 a number of bugs that were found in
+% version~3.6 are fixed. Also a number of changes and additions
+% have occurred:
+% \begin{itemize}
+% \item Shorthands are expandable again. The disadvantage is that
+% one has to type |'{}a| when the acute accent is used as a
+% shorthand character. The advantage is that a number of other
+% problems (such as the breaking of ligatures, etc.) have
+% vanished.
+% \item Two new commands, |\shorthandon| and |\shorthandoff| have
+% been introduced to enable to temporarily switch off one or more
+% shorthands.
+%^^A \item Support for typesetting Sanskrit in transliteration is now
+%^^A available, thanks to Jun Takashima.
+%^^A \item Support for typesetting Kannada, Devnagari and Tamil is now
+%^^A available thanks to Jun Takashima.
+% \item Support for typesetting Greek has been enhanced. Code from
+% the \pkg{kdgreek} package (suggested by the author) was added
+% and |\greeknumeral| has been added.
+% \item Support for typesetting Basque is now available thanks to
+% Juan Aguirregabiria.
+% \item Support for typesetting Serbian with Latin script is now
+% available thanks to Dejan Muhamedagi\'{c} and Jankovic
+% Slobodan.
+% \item Support for typesetting Hebrew (and potential support for
+% typesetting other right-to-left written languages) is now
+% available thanks to Rama Porrat and Boris Lavva.
+% \item Support for typesetting Bulgarian is now available thanks to
+% Georgi Boshnakov.
+% \item Support for typesetting Latin is now available, thanks to
+% Claudio Beccari and Krzysztof Konrad \.Zelechowski.
+% \item Support for typesetting North Sami is now available, thanks
+% to Regnor Jernsletten.
+% \item The options \Lopt{canadian}, \Lopt{canadien} and
+% \Lopt{acadien} have been added for Canadian English and French
+% use.
+% \item A language attribute has been added to the |\mark...|
+% commands in order to make sure that a Greek header line comes
+% out right on the last page before a language switch.
+% \item Hyphenation pattern files are now read \emph{inside a
+% group}; therefore any changes a pattern file needs to make to
+% lowercase codes, uppercase codes, and category codes are kept
+% local to that group. If they are needed for the language, these
+% changes will need to be repeated and stored in |\extras...|
+% \item The concept of language attributes is introduced. It is
+% intended to give the user some control over the
+% features a language-definition file provides. Its
+% first use is for the Greek language, where the user can choose
+% the $\pi o\lambda\upsilon\tau o\nu\kappa\acute{o}$
+% (``Polutoniko'' or multi-accented) Greek way of typesetting
+% texts. These attributes will possibly find wider use in future
+% releases.
+% \item The environment \Lenv{hyphenrules} is introduced.
+% \item The syntax of the file \file{language.dat} has been
+% extended to allow (optionally) specifying the font
+% encoding to be used while processing the patterns file.
+% \item The command |\providehyphenmins| should now be used in
+% language definition files in order to be able to keep any
+% settings provided by the pattern file.
+% \end{itemize}
+%
+% \section{Changes in \Babel\ version 3.6}
+%
+% In \Babel\ version 3.6 a number of bugs that were found in
+% version~3.5 are fixed. Also a number of changes and additions
+% have occurred:
+% \begin{itemize}
+% \item A new environment \Lenv{otherlanguage*} is introduced. it
+% only switches the `specials', but leaves the `captions'
+% untouched.
+% \item The shorthands are no longer fully expandable. Some
+% problems could only be solved by peeking at the token following
+% an active character. The advantage is that |'{}a| works as
+% expected for languages that have the |'| active.
+% \item Support for typesetting french texts is much enhanced; the
+% file \file{francais.ldf} is now replaced by \file{frenchb.ldf}
+% which is maintained by Daniel Flipo.
+% \item Support for typesetting the russian language is again
+% available. The language definition file was originally
+% developed by Olga Lapko from CyrTUG. The fonts needed to
+% typeset the russian language are now part of the \babel\
+% distribution. The support is not yet up to the level which is
+% needed according to Olga, but this is a start.
+% \item Support for typesetting greek texts is now also
+% available. What is offered in this release is a first attempt;
+% it will be enhanced later on by Yannis Haralambous.
+% \item in \babel\ 3.6j some hooks have been added for the
+% development of support for Hebrew typesetting.
+% \item Support for typesetting texts in Afrikaans (a variant of
+% Dutch, spoken in South Africa) has been added to
+% \file{dutch.ldf}.
+% \item Support for typesetting Welsh texts is now available.
+% \item A new command |\aliasshorthand| is introduced. It seems
+% that in Poland various conventions are used to type the
+% necessary Polish letters. It is now possible to use the
+% character~|/| as a shorthand character instead of the
+% character~|"|, by issuing the command |\aliasshorthand{"}{/}|.
+% \item The shorthand mechanism now deals correctly with characters
+% that are already active.
+% \item Shorthand characters are made active at |\begin{document}|,
+% not earlier. This is to prevent problems with other packages.
+% \item A \emph{preambleonly} command |\substitutefontfamily| has
+% been added to create \file{.fd} files on the fly when the font
+% families of the Latin text differ from the families used for
+% the Cyrillic or Greek parts of the text.
+% \item Three new commands |\LdfInit|, |\ldf@quit| and
+% |\ldf@finish| are introduced that perform a number of standard
+% tasks.
+% \item In babel 3.6k the language Ukrainian has been added and the
+% support for Russian typesetting has been adapted to the package
+% 'cyrillic' to be released with the December 1998 release of
+% \LaTeXe.
+% \end{itemize}
+%
+% \section{Changes in \Babel\ version 3.5}
+%
+% In \Babel\ version 3.5 a lot of changes have been made when
+% compared with the previous release. Here is a list of the most
+% important ones:
+% \begin{itemize}
+% \item the selection of the language is delayed until
+% |\begin{document}|, which means you must
+% add appropriate |\selectlanguage| commands if you include
+% |\hyphenation| lists in the preamble of your document.
+% \item \babel\ now has a \Lenv{language} environment and a new
+% command |\foreignlanguage|;
+% \item the way active characters are dealt with is completely
+% changed. They are called `shorthands'; one can have three
+% levels of shorthands: on the user level, the language level, and
+% on `system level'. A consequence of the new way of handling
+% active characters is that they are now written to auxiliary
+% files `verbatim';
+% \item A language change now also writes information in the
+% \file{.aux} file, as the change might also affect typesetting
+% the table of contents. The consequence is that an .aux file
+% generated by a LaTeX format with babel preloaded gives errors
+% when read with a LaTeX format without babel; but I think this
+% probably doesn't occur;
+% \item \babel\ is now compatible with the \pkg{inputenc} and
+% \pkg{fontenc} packages;
+% \item the language definition files now have a new extension,
+% \file{ldf};
+% \item the syntax of the file \file{language.dat} is extended to
+% be compatible with the \pkg{french} package by Bernard Gaulle;
+% \item each language definition file looks for a configuration
+% file which has the same name, but the extension \file{.cfg}. It
+% can contain any valid \LaTeX\ code.
+% \end{itemize}
+%
+% \section{The interface between the core of \babel{} and the language
+% definition files}
+%
+% In the core of the \babel{} system, several macros are defined
+% for use in language definition files. Their purpose
+% is to make a new language known.
+%
+% \DescribeMacro{\addlanguage}
+% The macro |\addlanguage| is a non-outer version of the macro
+% |\newlanguage|, defined in \file{plain.tex} version~3.x. For
+% older versions of \file{plain.tex} and \file{lplain.tex} a
+% substitute definition is used.
+%
+% \DescribeMacro{\adddialect}
+% The macro |\adddialect| can be used when two
+% languages can (or must) use the same hyphenation
+% patterns. This can also be useful for
+% languages for which no patterns are preloaded in the format. In
+% such cases the default behaviour of the \babel{} system is to
+% define this language as a `dialect' of the language for which the
+% patterns were loaded as |\language0|.
+%
+% The language definition files must conform to a number of
+% conventions, because these files have to fill
+% in the gaps left by the common code in \file{babel.def}, i.\,e.,
+% the definitions of the macros that produce texts. Also the
+% language-switching possibility which has been built into the
+% \babel{} system has its implications.
+%
+% The following assumptions are made:
+% \begin{itemize}
+% \item Some of the language-specific definitions might be used by
+% plain \TeX\ users, so the files have to be coded so that they
+% can be read by both \LaTeX\ and plain \TeX. The current
+% format can be checked by looking at the value of the macro
+% |\fmtname|.
+%
+% \item The common part of the \babel{} system redefines a number
+% of macros and environments (defined previously in the document
+% style) to put in the names of macros that replace the previously
+% hard-wired texts. These macros have to be defined in the
+% language definition files.
+%
+% \item The language definition files define five macros, used to
+% activate and deactivate the language-specific definitions. These
+% macros are |\|\langvar|hyphenmins|, |\captions|\langvar,
+% |\date|\langvar, |\extras|\langvar\ and |\noextras|\langvar; where
+% \langvar\ is either the name of the language definition file or
+% the name of the \LaTeX\ option that is to be used. These
+% macros and their functions are discussed below.
+%
+% \item When a language definition file is loaded, it can define
+% |\l@|\langvar\ to be a dialect of |\language0| when
+% |\l@|\langvar\ is undefined.
+%
+% \item The language definition files can be read in the preamble of
+% the document, but also in the middle of document processing. This
+% means that they have to function independently of the current
+% |\catcode| of the \texttt{@}~sign.
+% \end{itemize}
+%
+% \DescribeMacro{\providehyphenmins}
+% The macro |\providehyphenmins| should be used in the language
+% definition files to set the |\lefthyphenmin| and
+% |\righthyphenmin|. This macro will check whether these parameters
+% were provided by the hyphenation file before it takes any action.
+%
+% \DescribeMacro{\langhyphenmins}
+% The macro |\|\langvar|hyphenmins| is used to store the values of
+% the |\lefthyphenmin| and |\righthyphenmin|.
+%
+% \DescribeMacro{\captionslang}
+% The macro |\captions|\langvar\ defines the macros that
+% hold the texts to replace the original hard-wired texts.
+%
+% \DescribeMacro{\datelang}
+% The macro |\date|\langvar\ defines |\today| and
+%
+% \DescribeMacro{\extraslang}
+% The macro |\extras|\langvar\ contains all the extra definitions
+% needed for a specific language.
+%
+% \DescribeMacro{\noextraslang}
+% Because we want to let the user switch
+% between languages, but we do not know what state \TeX\ might be in
+% after the execution of |\extras|\langvar, a macro that brings
+% \TeX\ into a predefined state is needed. It will be no surprise
+% that the name of this macro is |\noextras|\langvar.
+%
+% \DescribeMacro{\bbl@declare@ttribute}
+% This is a command to be used in the language definition files for
+% declaring a language attribute. It takes three arguments: the
+% name of the language, the attribute to be defined, and the code
+% to be executed when the attribute is to be used.
+%
+% \DescribeMacro{\main@language}
+% To postpone the activation of the definitions needed for a
+% language until the beginning of a document, all language
+% definition files should use |\main@language| instead of
+% |\selectlanguage|. This will just store the name of the language,
+% and the proper language will be activated at the start of the
+% document.
+%
+% \DescribeMacro{\ProvidesLanguage}
+% The macro |\ProvidesLanguage| should be used to identify the
+% language definition files. Its syntax is similar to the syntax
+% of the \LaTeX\ command |\ProvidesPackage|.
+%
+% \DescribeMacro{\LdfInit}
+% The macro |\LdfInit| performs a couple of standard checks that
+% must be made at the beginning of a language definition file,
+% such as checking the category code of the @-sign, preventing
+% the \file{.ldf} file from being processed twice, etc.
+%
+% \DescribeMacro{\ldf@quit}
+% The macro |\ldf@quit| does work needed
+% if a \file{.ldf} file was processed
+% earlier. This includes resetting the category code
+% of the @-sign, preparing the language to be activated at
+% |\begin{document}| time, and ending the input stream.
+%
+% \DescribeMacro{\ldf@finish}
+% The macro |\ldf@finish| does work needed
+% at the end of each \file{.ldf} file. This
+% includes resetting the category code of the @-sign,
+% loading a local configuration file, and preparing the language
+% to be activated at |\begin{document}| time.
+%
+% \DescribeMacro{\loadlocalcfg}
+% After processing a language definition file,
+% \LaTeX\ can be instructed to load a local configuration
+% file. This file can, for instance, be used to add strings to
+% |\captions|\langvar\ to support local document
+% classes. The user will be informed that this
+% configuration file has been loaded. This macro is called by
+% |\ldf@finish|.
+%
+% \DescribeMacro{\substitutefontfamily}
+% This command takes three arguments, a font encoding and two font
+% family names. It creates a font description file for the first
+% font in the given encoding. This \file{.fd} file will instruct
+% \LaTeX\ to use a font from the second family when a font from the
+% first family in the given encoding seems to be needed.
+%
+% \subsection{Support for active characters}
+%
+% In quite a number of language definition files, active characters
+% are introduced. To facilitate this, some support macros are
+% provided.
+%
+% \DescribeMacro{\initiate@active@char}
+% The internal macro |\initiate@active@char| is used in language
+% definition files to instruct \LaTeX\ to give a character the
+% category code `active'. When a character has been made active it
+% will remain that way until the end of the document. Its
+% definition may vary.
+%
+% \DescribeMacro{\bbl@activate}
+% \DescribeMacro{\bbl@deactivate}
+% The command |\bbl@activate| is used to change the way an active
+% character expands. |\bbl@activate| `switches on' the active
+% behaviour of the character. |\bbl@deactivate| lets the active
+% character expand to its former (mostly) non-active self.
+%
+% \DescribeMacro{\declare@shorthand}
+% The macro |\declare@shorthand| is used to define the various
+% shorthands. It takes three arguments: the name for the collection
+% of shorthands this definition belongs to; the character
+% (sequence) that makes up the shorthand, i.e.\ |~| or |"a|; and the
+% code to be executed when the shorthand is encountered.
+%
+% \DescribeMacro{\bbl@add@special}
+% \DescribeMacro{\bbl@remove@special}
+% The \TeX book states: ``Plain \TeX\ includes a macro called
+% |\dospecials| that is
+% essentially a set macro, representing the set of all characters
+% that have a special category code.'' \cite[p.~380]{DEK} It is
+% used to set text `verbatim'. To make this work if more
+% characters get a special category code, you have to add this
+% character to the macro |\dospecial|. \LaTeX\ adds another macro
+% called |\@sanitize| representing the same character set, but
+% without the curly braces. The macros
+% |\bbl@add@special|\meta{char} and
+% |\bbl@remove@special|\meta{char} add and remove the character
+% \meta{char} to these two sets.
+%
+% \subsection{Support for saving macro definitions}
+%
+% Language definition files may want to \emph{re}define macros that
+% already exist. Therefor a mechanism for saving (and restoring)
+% the original definition of those macros is provided. We provide
+% two macros for this\footnote{This mechanism was introduced by
+% Bernd Raichle.}.
+%
+% \DescribeMacro{\babel@save} To save the current meaning of any
+% control sequence, the macro |\babel@save| is provided. It takes
+% one argument, \meta{csname}, the control sequence for which the
+% meaning has to be saved.
+%
+% \DescribeMacro{\babel@savevariable} A second macro is provided to
+% save the current value of a variable. In this context, anything
+% that is allowed after the |\the| primitive is considered to be a
+% variable. The macro takes one argument, the \meta{variable}.
+%
+% The effect of the preceding macros is to append a piece of code
+% to the current definition of |\originalTeX|. When
+% |\originalTeX| is expanded, this code restores the previous
+% definition of the control sequence or the previous value of the
+% variable.
+%
+% \subsection{Support for extending macros}
+%
+% \DescribeMacro{\addto}
+% The macro |\addto{|\meta{control sequence}|}{|\meta{\TeX\
+% code}|}| can be used to extend the definition of a macro. The
+% macro need not be defined. This macro can, for instance, be used
+% in adding instructions to a macro like |\extrasenglish|.
+%
+% \subsection{Macros common to a number of languages}
+%
+% \DescribeMacro{\allowhyphens}
+% In a couple of European languages compound words are used. This
+% means that when \TeX\ has to hyphenate such a compound word, it
+% only does so at the `\texttt{-}' that is used in such words. To
+% allow hyphenation in the rest of such a compound word, the macro
+% |\allowhyphens| can be used.
+%
+% \DescribeMacro{\set@low@box}
+% For some languages, quotes need to be lowered to the baseline. For
+% this purpose the macro |\set@low@box| is available. It takes one
+% argument and puts that argument in an |\hbox|, at the
+% baseline. The result is available in |\box0| for further
+% processing.
+%
+% \DescribeMacro{\save@sf@q}
+% Sometimes it is necessary to preserve the |\spacefactor|. For
+% this purpose the macro |\save@sf@q| is available. It takes one
+% argument, saves the current spacefactor, executes the argument,
+% and restores the spacefactor.
+%
+% \DescribeMacro{\bbl@frenchspacing}
+% \DescribeMacro{\bbl@nonfrenchspacing}
+% The commands |\bbl@frenchspacing| and |\bbl@nonfrenchspacing| can
+% be used to properly switch French spacing on and off.
+%
+% \section{Compatibility with \file{german.sty}}\label{l-h}
+%
+% The file \file{german.sty} has been
+% one of the sources of inspiration for the \babel{}
+% system. Because of this I wanted to include \file{german.sty} in
+% the \babel{} system. To be able to do that I had to allow for
+% one incompatibility: in the definition of the macro
+% |\selectlanguage| in \file{german.sty} the argument is used as the
+% {$\langle \it number \rangle$} for an |\ifcase|. So in this case
+% a call to |\selectlanguage| might look like
+% |\selectlanguage{\german}|.
+%
+% In the definition of the macro |\selectlanguage| in
+% \file{babel.def} the argument is used as a part of other
+% macronames, so a call to |\selectlanguage| now looks like
+% |\selectlanguage{german}|. Notice the absence of the escape
+% character. As of version~3.1a of \babel{} both syntaxes are
+% allowed.
+%
+% All other features of the original \file{german.sty} have been
+% copied into a new file, called \file{germanb.sty}\footnote{The
+% `b' is added to the name to distinguish the file from Partls'
+% file.}.
+%
+% Although the \babel{} system was developed to be used with
+% \LaTeX, some of the features implemented in the language
+% definition files might be needed by plain \TeX\ users. Care has
+% been taken that all files in the system can be processed by plain
+% \TeX.
+%
+% \section{Compatibility with \file{ngerman.sty}}
+%
+% When used with the options \Lopt{ngerman} or \Lopt{naustrian},
+% \babel{} will provide all features of the package \pkg{ngerman}.
+% There is however one exception: The commands for special
+% hyphenation of double consonants (|"ff| etc.) and ck (|"ck|),
+% which are no longer required with the new German orthography, are
+% undefined. With the \pkg{ngerman} package, however, these
+% commands will generate appropriate warning messages only.
+%
+% \section{Compatibility with the \pkg{french} package}
+%
+% It has been reported to me that the package \pkg{french} by
+% Bernard Gaulle (\texttt{gaulle@idris.fr}) works
+% together with \babel. On the other hand, it seems \emph{not} to
+% work well together with a lot of other packages. Therefore I have
+% decided to no longer load \file{french.ldf} by default. Instead,
+% when you want to use the package by Bernard Gaulle, you will have
+% to request it specifically, by passing either \Lopt{frenchle} or
+% \Lopt{frenchpro} as an option to \babel.
+%
+%\StopEventually{%
+% \clearpage
+% \let\filename\thisfilename
+% \section{Conclusion}
+%
+% A system of document options has been presented that enable the
+% user of \LaTeX\ to adapt the standard document classes of \LaTeX\
+% to the language he or she prefers to use. These options offer the
+% possibility of switching between languages in one document. The
+% basic interface consists of using one option, which is the same
+% for \emph{all} standard document classes.
+%
+% In some cases the language definition files provide macros that
+% can be useful to plain \TeX\ users as well as to \LaTeX\ users.
+% The \babel{} system has been implemented so that it
+% can be used by both groups of users.
+%
+% \section{Acknowledgements}
+%
+% I would like to thank all who volunteered as $\beta$-testers for
+% their time. I would like to mention Julio Sanchez who supplied
+% the option file for the Spanish language and Maurizio Codogno who
+% supplied the option file for the Italian language. Michel Goossens
+% supplied contributions for most of the other languages. Nico
+% Poppelier helped polish the text of the documentation and
+% supplied parts of the macros for the Dutch language. Paul
+% Wackers and Werenfried Spit helped find and repair bugs.
+%
+% During the further development of the babel system I received
+% much help from Bernd Raichle, for which I am grateful.
+%
+% \begin{thebibliography}{9}
+% \bibitem{DEK} Donald E. Knuth,
+% \emph{The \TeX book}, Addison-Wesley, 1986.
+% \bibitem{LLbook} Leslie Lamport,
+% \emph{\LaTeX, A document preparation System}, Addison-Wesley,
+% 1986.
+% \bibitem{treebus} K.F. Treebus.
+% \emph{Tekstwijzer, een gids voor het grafisch verwerken van
+% tekst.}
+% SDU Uitgeverij ('s-Gravenhage, 1988). A Dutch book on layout
+% design and typography.
+% \bibitem{HP} Hubert Partl,
+% \emph{German \TeX}, \emph{TUGboat} 9 (1988) \#1, p.~70--72.
+% \bibitem{LLth} Leslie Lamport,
+% in: \TeXhax\ Digest, Volume 89, \#13, 17 February 1989.
+% \bibitem{BEP} Johannes Braams, Victor Eijkhout and Nico Poppelier,
+% \emph{The development of national \LaTeX\ styles},
+% \emph{TUGboat} 10 (1989) \#3, p.~401--406.
+% \bibitem{ilatex} Joachim Schrod,
+% \emph{International \LaTeX\ is ready to use},
+% \emph{TUGboat} 11 (1990) \#1, p.~87--90.
+% \end{thebibliography}
+% }
+%
+% \section{Identification}
+%
+% The file \file{babel.sty}\footnote{The file described in this
+% section is called \texttt{\filename}, has version
+% number~\fileversion\ and was last revised on~\filedate.} is meant
+% for \LaTeXe, therefor we make sure that the format file used is
+% the right one.
+%
+% \begin{macro}{\ProvidesLanguage}
+% \changes{babel~3.7a}{1997/03/18}{Added macro to prevent problems
+% with unexpected \cs{ProvidesFile} in plain formats because of
+% \babel.}
+% The identification code for each file is something that was
+% introduced in \LaTeXe. When the command |\ProvidesFile| does not
+% exist, a dummy definition is provided temporarily. For use in the
+% language definition file the command |\ProvidesLanguage| is
+% defined by \babel.
+% \changes{babel~3.4e}{1994/06/24}{Redid the identification code,
+% provided dummy definition of \cs{ProvidesFile} for plain \TeX}
+% \changes{babel~3.5f}{1995/07/26}{Store version in \cs{fileversion}}
+% \changes{babel~3.5f}{1995/12/18}{Need to temporarily change the
+% definition of \cs{ProvidesFile} for December 1995 release}
+% \changes{babel~3.5g}{1996/07/09}{Save a few csnames; use
+% \cs{bbl@tempa} instead of \cs{\@ProvidesFile} and store message
+% in \cs{toks8}}
+% \begin{macrocode}
+%<*!package>
+\ifx\ProvidesFile\@undefined
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \wlog{File: #1 #4 #3 <#2>}%
+%<*kernel&patterns>
+ \toks8{Babel <#3> and hyphenation patterns for }%
+%</kernel&patterns>
+ \let\ProvidesFile\@undefined
+ }
+% \end{macrocode}
+% As an alternative for |\ProvidesFile| we define
+% |\ProvidesLanguage| here to be used in the language definition
+% files.
+% \begin{macrocode}
+%<*kernel>
+ \def\ProvidesLanguage#1[#2 #3 #4]{%
+ \wlog{Language: #1 #4 #3 <#2>}%
+ }
+\else
+% \end{macrocode}
+% In this case we save the original definition of |\ProvidesFile| in
+% |\bbl@tempa| and restore it after we have stored the version of
+% the file in |\toks8|.
+% \changes{babel~3.7a}{1997/11/04}{Removed superfluous braces}
+% \begin{macrocode}
+%<*kernel&patterns>
+ \let\bbl@tempa\ProvidesFile
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \toks8{Babel <#3> and hyphenation patterns for }%
+ \bbl@tempa#1[#2 #3 #4]%
+ \let\ProvidesFile\bbl@tempa}
+%</kernel&patterns>
+% \end{macrocode}
+% When |\ProvidesFile| is defined we give |\ProvidesLanguage| a
+% similar definition.
+% \begin{macrocode}
+ \def\ProvidesLanguage#1{%
+ \begingroup
+ \catcode`\ 10 %
+ \@makeother\/%
+ \@ifnextchar[%]
+ {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}}
+ \def\@provideslanguage#1[#2]{%
+ \wlog{Language: #1 #2}%
+ \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}%
+ \endgroup}
+%</kernel>
+\fi
+%</!package>
+% \end{macrocode}
+% \end{macro}
+%
+% Identify each file that is produced from this source file.
+% \changes{babel~3.4c}{1995/04/28}{lhyphen.cfg has become
+% lthyphen.cfg}
+% \changes{babel~3.5b}{1995/01/25}{lthyphen.cfg has become hyphen.cfg}
+% \begin{macrocode}
+%<+package>\ProvidesPackage{babel}
+%<+core>\ProvidesFile{babel.def}
+%<+kernel&patterns>\ProvidesFile{hyphen.cfg}
+%<+kernel&!patterns>\ProvidesFile{switch.def}
+%<+driver&!user>\ProvidesFile{babel.drv}
+%<+driver&user>\ProvidesFile{user.drv}
+ [2005/05/21 v3.8g %
+%<+package> The Babel package]
+%<+core> Babel common definitions]
+%<+kernel> Babel language switching mechanism]
+%<+driver>]
+% \end{macrocode}
+%
+% \section{The Package File}
+%
+% In order to make use of the features of \LaTeXe, the \babel\
+% system contains a package file, \file{babel.sty}. This file
+% is loaded by the |\usepackage| command and defines all the
+% language options known in the \babel\ system. It also takes care
+% of a number of compatibility issues with other packages.
+%
+% \subsection{Language options}
+%
+% \changes{babel~3.6c}{1997/01/05}{When \cs{LdfInit} is undefined we
+% need to load \file{babel.def} from \file{babel.sty}}
+% \changes{babel~3.6l}{1999/04/03}{Don't load \file{babel.def} now,
+% but rather define \cs{LdfInit} temporarily in order to load
+% \file{babel.def} at the right time, preventing problems with the
+% temporary definition of \cs{bbl@redefine}}
+% \changes{babel~3.6r}{1999/04/12}{We \textbf{do} need to load
+% \file{babel.def} right now as \cs{ProvidesLanguage} needs to be
+% defined before the \file{.ldf} files are read and the reason for
+% for 3.6l has been removed}
+% \begin{macrocode}
+%<*package>
+\ifx\LdfInit\@undefined\input babel.def\relax\fi
+% \end{macrocode}
+%
+% For all the languages supported we need to declare an option.
+% \changes{babel~3.5a}{1995/03/14}{Changed extension of language
+% definition files to \texttt{ldf}}
+% \changes{babel~3.5d}{1995/07/02}{Load language definition files
+% \emph{after} the check for the hyphenation patterns}
+% \changes{babel~3.5g}{1996/10/04}{Added option \Lopt{afrikaans}}
+% \changes{babel~3.7g}{2001/02/09}{Added option \Lopt{acadian}}
+% \changes{babel~3.8c}{2004/06/12}{Added option \Lopt{australian}}
+% \begin{macrocode}
+\DeclareOption{acadian}{\input{frenchb.ldf}}
+\DeclareOption{afrikaans}{\input{dutch.ldf}}
+\DeclareOption{american}{\input{english.ldf}}
+\DeclareOption{australian}{\input{english.ldf}}
+% \end{macrocode}
+% Austrian is really a dialect of German.
+% \changes{babel~3.6i}{1997/02/20}{Added the \Lopt{Basque} option}
+% \begin{macrocode}
+\DeclareOption{austrian}{\input{germanb.ldf}}
+\DeclareOption{bahasa}{\input{bahasa.ldf}}
+\DeclareOption{basque}{\input{basque.ldf}}
+\DeclareOption{brazil}{\input{portuges.ldf}}
+% \end{macrocode}
+% \changes{babel~3.5b}{1995/05/25}{Added \Lopt{brazilian} as
+% alternative for \Lopt{brazil}}
+% \begin{macrocode}
+\DeclareOption{brazilian}{\input{portuges.ldf}}
+\DeclareOption{breton}{\input{breton.ldf}}
+% \end{macrocode}
+% \changes{babel~3.5d}{1995/07/02}{Added \Lopt{british} as an
+% alternative for \Lopt{english} with a preference for british
+% hyphenation}
+% \changes{babel~3.7f}{2000/09/21}{Added the \Lopt{bulgarian} option}
+% \changes{babel~3.7g}{2001/02/07}{Added option \Lopt{canadian}}
+% \changes{babel~3.7g}{2001/02/09}{Added option \Lopt{canadien}}
+% \begin{macrocode}
+\DeclareOption{british}{\input{english.ldf}}
+\DeclareOption{bulgarian}{\input{bulgarian.ldf}}
+\DeclareOption{canadian}{\input{english.ldf}}
+\DeclareOption{canadien}{\input{frenchb.ldf}}
+\DeclareOption{catalan}{\input{catalan.ldf}}
+\DeclareOption{croatian}{\input{croatian.ldf}}
+\DeclareOption{czech}{\input{czech.ldf}}
+\DeclareOption{danish}{\input{danish.ldf}}
+\DeclareOption{dutch}{\input{dutch.ldf}}
+% \end{macrocode}
+% \changes{babel~3.5b}{1995/06/06}{Added the \Lopt{estonian} option}
+% \begin{macrocode}
+\DeclareOption{english}{\input{english.ldf}}
+\DeclareOption{esperanto}{\input{esperanto.ldf}}
+\DeclareOption{estonian}{\input{estonian.ldf}}
+\DeclareOption{finnish}{\input{finnish.ldf}}
+% \end{macrocode}
+% The \babel\ support or French used to be stored in
+% \file{francais.ldf}; therefor the \LaTeX2.09 option used to be
+% \Lopt{francais}. The hyphenation patterns may be loaded as either
+% `french' or as `francais'.
+% \changes{babel~3.5f}{1996/01/10}{Now use the file \file{frenchb.ldf}
+% from Daniel Flipo for french support}
+% \changes{babel~3.6e}{1997/01/08}{Added option \Lopt{frenchb} an
+% alias for \Lopt{francais}}
+% \begin{macrocode}
+\DeclareOption{francais}{\input{frenchb.ldf}}
+\DeclareOption{frenchb}{\input{frenchb.ldf}}
+% \end{macrocode}
+% With \LaTeXe\ we can now also use the option \Lopt{french} and
+% still call the file \file{frenchb.ldf}.
+% \changes{babel~3.5d}{1995/07/02}{Load \file{french.ldf} when it is
+% found instead of \file{frenchb.ldf}}
+% \changes{babel~3.7j}{2003/06/07}{\emph{only} load
+% \file{frenchb.ldf}}
+% \begin{macrocode}
+\DeclareOption{french}{\input{frenchb.ldf}}%
+\DeclareOption{galician}{\input{galician.ldf}}
+\DeclareOption{german}{\input{germanb.ldf}}
+\DeclareOption{germanb}{\input{germanb.ldf}}
+% \end{macrocode}
+% \changes{babel~3.5f}{1996/05/31}{Added the \Lopt{greek} option}
+% \changes{babel~3.7a}{1997/11/13}{Added the \Lopt{polutonikogreek}
+% option}
+% \changes{babel~3.7c}{1999/04/22}{set the correct language attribute
+% for polutoniko greek}
+% \begin{macrocode}
+\DeclareOption{greek}{\input{greek.ldf}}
+\DeclareOption{polutonikogreek}{%
+ \input{greek.ldf}%
+ \languageattribute{greek}{polutoniko}}
+% \end{macrocode}
+% \changes{babel~3.7a}{1998/03/27}{Added the \Lopt{hebrew} option}
+% \begin{macrocode}
+\DeclareOption{hebrew}{%
+ \input{rlbabel.def}%
+ \input{hebrew.ldf}}
+% \end{macrocode}
+% \Lopt{hungarian} is just a synonym for \Lopt{magyar}
+%^^A \changes{babel~3.6i}{1997/02/21}{Added the \Lopt{kannada} option}
+% \changes{babel~3.7a}{1997/05/21}{Added the \Lopt{icelandic} option}
+%^^A \changes{babel~3.7a}{1998/03/30}{{Added the \Lopt{nagari} option}
+% \changes{babel~3.7b}{1998/06/25}{Added the \Lopt{latin} option}
+% \changes{babel~3.7m}{2003/11/13}{Added the \Lopt{interlingua}
+% option}
+% \begin{macrocode}
+\DeclareOption{hungarian}{\input{magyar.ldf}}
+\DeclareOption{icelandic}{\input{icelandic.ldf}}
+\DeclareOption{interlingua}{\input{interlingua.ldf}}
+\DeclareOption{irish}{\input{irish.ldf}}
+\DeclareOption{italian}{\input{italian.ldf}}
+\DeclareOption{latin}{\input{latin.ldf}}
+\DeclareOption{lowersorbian}{\input{lsorbian.ldf}}
+%^^A\DeclareOption{kannada}{\input{kannada.ldf}}
+\DeclareOption{magyar}{\input{magyar.ldf}}
+%^^A\DeclareOption{nagari}{\input{nagari.ldf}}
+% \end{macrocode}
+% `New' German orthography, including Austrian variant:
+% \changes{babel~3.6p}{1999/04/10}{Added the \Lopt{ngerman} and
+% \Lopt{naustrian} options}
+% \changes{babel~3.7f}{2000/09/26}{Added the \Lopt{samin} option}
+% \changes{babel~3.8c}{2004/06/12}{Added the \Lopt{newzealand} option}
+% \begin{macrocode}
+\DeclareOption{naustrian}{\input{ngermanb.ldf}}
+\DeclareOption{newzealand}{\input{english.ldf}}
+\DeclareOption{ngerman}{\input{ngermanb.ldf}}
+\DeclareOption{norsk}{\input{norsk.ldf}}
+\DeclareOption{samin}{\input{samin.ldf}}
+% \end{macrocode}
+% For Norwegian two spelling variants are provided.
+% \begin{macrocode}
+\DeclareOption{nynorsk}{\input{norsk.ldf}}
+\DeclareOption{polish}{\input{polish.ldf}}
+\DeclareOption{portuges}{\input{portuges.ldf}}
+\DeclareOption{portuguese}{\input{portuges.ldf}}
+\DeclareOption{romanian}{\input{romanian.ldf}}
+\DeclareOption{russian}{\input{russianb.ldf}}
+% \end{macrocode}
+%^^A \changes{babel~3.7a}{1997/02/07}{Added the \Lopt{sanskrit} option}
+% \changes{babel~3.6i}{1997/02/21}{Added the \Lopt{ukrainian} option}
+%^^A \changes{babel~3.7a}{1998/03/30}{Added the \Lopt{tamil} option}
+% \begin{macrocode}
+%^^A\DeclareOption{sanskrit}{\input{sanskrit.ldf}}
+\DeclareOption{scottish}{\input{scottish.ldf}}
+\DeclareOption{serbian}{\input{serbian.ldf}}
+\DeclareOption{slovak}{\input{slovak.ldf}}
+\DeclareOption{slovene}{\input{slovene.ldf}}
+\DeclareOption{spanish}{\input{spanish.ldf}}
+\DeclareOption{swedish}{\input{swedish.ldf}}
+%^^A\DeclareOption{tamil}{\input{tamil.ldf}}
+\DeclareOption{turkish}{\input{turkish.ldf}}
+\DeclareOption{ukrainian}{\input{ukraineb.ldf}}
+\DeclareOption{uppersorbian}{\input{usorbian.ldf}}
+\DeclareOption{welsh}{\input{welsh.ldf}}
+% \end{macrocode}
+% \changes{babel~3.6e}{1997/01/08}{Added options \Lopt{UKenglish} and
+% \Lopt{USenglish}}
+% \begin{macrocode}
+\DeclareOption{UKenglish}{\input{english.ldf}}
+\DeclareOption{USenglish}{\input{english.ldf}}
+% \end{macrocode}
+%
+% For all those languages for which the option name is the same as
+% the name of the language specific file we specify a default
+% option, which tries to load the file specified. If this doesn't
+% succeed an error is signalled.
+% \changes{babel~3.6i}{1997/03/12}{Added default option}
+% \begin{macrocode}
+\DeclareOption*{%
+ \InputIfFileExists{\CurrentOption.ldf}{}{%
+ \PackageError{babel}{%
+ Language definition file \CurrentOption.ldf not found}{%
+ Maybe you misspelled the language option?}}%
+ }
+% \end{macrocode}
+% Another way to extend the list of `known' options for \babel\ is
+% to create the file \file{bblopts.cfg} in which one can add
+% option declarations.
+% \changes{babel~3.6i}{1997/03/15}{Added the possibility to have a
+% \file{bblopts.cfg} file with option declarations.}
+% \begin{macrocode}
+\InputIfFileExists{bblopts.cfg}{%
+ \typeout{*************************************^^J%
+ * Local config file bblopts.cfg used^^J%
+ *}%
+ }{}
+% \end{macrocode}
+%
+% Apart from all the language options we also have a few options
+% that influence the behaviour of language definition files.
+%
+% The following options don't do anything themselves, they are just
+% defined in order to make it possible for language definition
+% files to check if one of them was specified by the user.
+% \changes{babel~3.5d}{1995/07/04}{Added options to influence
+% behaviour of active acute and grave accents}
+% \begin{macrocode}
+\DeclareOption{activeacute}{}
+\DeclareOption{activegrave}{}
+% \end{macrocode}
+% The next option tells \babel\ to leave shorthand characters
+% active at the end of processing the package. This is \emph{not}
+% the default as it can cause problems with other packages, but for
+% those who want to use the shorthand characters in the preamble of
+% their documents this can help.
+% \changes{babel~3.6f}{1997/01/14}{Added option
+% \Lopt{KeepShorthandsActive}}
+% \changes{babel~3.7a}{1997/03/21}{No longer define the control
+% sequence \cs{KeepShorthandsActive}}
+% \begin{macrocode}
+\DeclareOption{KeepShorthandsActive}{}
+% \end{macrocode}
+%
+% The options have to be processed in the order in which the user
+% specified them:
+% \begin{macrocode}
+\ProcessOptions*
+% \end{macrocode}
+% \changes{babel~3.7c}{1999/03/13}{Added an error message for when no
+% language option was specified}
+% In order to catch the case where the user forgot to specify a
+% language we check whether |\bbl@main@language|, has become
+% defined. If not, no language has been loaded and an error
+% message is displayed.
+% \changes{babel~3.7c}{1999/04/09}{No longer us a redefinition of an
+% internal macro, just check \cs{bbl@main@language} and load
+% \file{babel.def}}
+% \begin{macrocode}
+\ifx\bbl@main@language\@undefined
+ \PackageError{babel}{%
+ You haven't specified a language option}{%
+ You need to specify a language, either as a global
+ option\MessageBreak
+ or as an optional argument to the \string\usepackage\space
+ command; \MessageBreak
+ You shouldn't try to proceed from here, type x to quit.}
+% \end{macrocode}
+% To prevent undefined command errors when the user insists on
+% continuing we load \file{babel.def} here. He should expect more
+% errors though.
+% \begin{macrocode}
+ \input{babel.def}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\substitutefontfamily}
+% The command |\substitutefontfamily| creates an \file{.fd} file on
+% the fly. The first argument is an encoding mnemonic, the second
+% and third arguments are font family names.
+% \changes{babel~3.7j}{2003/06/15}{create file with lowercase name}
+% \begin{macrocode}
+\def\substitutefontfamily#1#2#3{%
+ \lowercase{\immediate\openout15=#1#2.fd\relax}%
+ \immediate\write15{%
+ \string\ProvidesFile{#1#2.fd}%
+ [\the\year/\two@digits{\the\month}/\two@digits{\the\day}
+ \space generated font description file]^^J
+ \string\DeclareFontFamily{#1}{#2}{}^^J
+ \string\DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}^^J
+ \string\DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}^^J
+ \string\DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}^^J
+ \string\DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}^^J
+ \string\DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/bx/n}{}^^J
+ \string\DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/bx/it}{}^^J
+ \string\DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/bx/sl}{}^^J
+ \string\DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/bx/sc}{}^^J
+ }%
+ \closeout15
+ }
+% \end{macrocode}
+% This command should only be used in the preamble of a document.
+% \begin{macrocode}
+\@onlypreamble\substitutefontfamily
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \section{The Kernel of Babel}
+%
+% The kernel of the \babel\ system is stored in either
+% \file{hyphen.cfg} or \file{switch.def} and \file{babel.def}. The
+% file \file{hyphen.cfg} is a file that can be loaded into the
+% format, which is necessary when you want to be able to switch
+% hyphenation patterns. The file \file{babel.def} contains some
+% \TeX\ code that can be read in at run time. When \file{babel.def}
+% is loaded it checks if \file{hyphen.cfg} is in the format; if
+% not the file \file{switch.def} is loaded.
+%
+% Because plain \TeX\ users might want to use some of the features
+% of the \babel{} system too, care has to be taken that plain \TeX\
+% can process the files. For this reason the current format will
+% have to be checked in a number of places. Some of the code below
+% is common to plain \TeX\ and \LaTeX, some of it is for the
+% \LaTeX\ case only.
+%
+% When the command |\AtBeginDocument| doesn't exist we assume that
+% we are dealing with a plain-based format. In that case the file
+% \file{plain.def} is needed.
+%
+% \begin{macrocode}
+%<*kernel|core>
+\ifx\AtBeginDocument\@undefined
+% \end{macrocode}
+% But we need to use the second part of \file{plain.def} (when we
+% load it from \file{switch.def}) which we can do by defining
+% |\adddialect|.
+% \changes{babel~3.7c}{1999/04/20}{define \cs{adddialect} before
+% loading \file{plain.def} here}
+% \begin{macrocode}
+%<kernel&!patterns> \def\adddialect{}
+ \input plain.def\relax
+\fi
+%</kernel|core>
+% \end{macrocode}
+%
+% Check the presence of the command |\iflanguage|, if it is
+% undefined read the file \file{switch.def}.
+% \changes{babel~3.0d}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \begin{macrocode}
+%<*core>
+\ifx\iflanguage\@undefined
+ \input switch.def\relax
+\fi
+%</core>
+% \end{macrocode}
+% \changes{babel~3.6a}{1996/11/02}{Removed \cs{babel@core@loaded}, no
+% longer needed with the advent of \cs{LdfInit}}
+%
+% \subsection{Encoding issues (part 1)}
+%
+% The first thing we need to do is to determine, at
+% |\begin{document}|, which latin fontencoding to use.
+%
+% \begin{macro}{\latinencoding}
+% \changes{babel~3.6i}{1997/03/15}{Macro added, moved from
+% \file{.ldf} files}
+% When text is being typeset in an encoding other than `latin'
+% (\texttt{OT1} or \texttt{T1}), it would be nice to still have
+% Roman numerals come out in the Latin encoding.
+% So we first assume that the current encoding at the end
+% of processing the package is the Latin encoding.
+% \begin{macrocode}
+%<*core>
+\AtEndOfPackage{\edef\latinencoding{\cf@encoding}}
+% \end{macrocode}
+% But this might be overruled with a later loading of the package
+% \pkg{fontenc}. Therefor we check at the execution of
+% |\begin{document}| whether it was loaded with the \Lopt{T1}
+% option. The normal way to do this (using |\@ifpackageloaded|) is
+% disabled for this package. Now we have to revert to parsing the
+% internal macro |\@filelist| which contains all the filenames
+% loaded.
+% \changes{babel~3.6k}{1999/03/15}{Use T1 encoding when it is a known
+% encoding}
+% \changes{babel~3.6m}{1999/04/06}{Can't use \cs{@ifpackageloaded}
+% need to parse \cs{@filelist}}
+% \changes{babel~3.6n}{1999/04/07}{moved checking for fontenc right to
+% the top of \file{babel.sty}}
+% \changes{babel~3.6n}{1999/04/07}{Added a check for `manual' selection
+% of \texttt{T1} encoding, without loading \pkg{fontenc}}
+% \changes{babel~3.6q}{1999/04/12}{Better solution then parsing
+% \cs{@filelist}, use \cs{@ifl@aded}}
+% \changes{babel~3.6u}{1999/04/20}{Moved this code to
+% \file{babel.def}}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \gdef\latinencoding{OT1}%
+ \ifx\cf@encoding\bbl@t@one
+ \xdef\latinencoding{\bbl@t@one}%
+ \else
+ \@ifl@aded{def}{t1enc}{\xdef\latinencoding{\bbl@t@one}}{}%
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\latintext}
+% \changes{babel~3.6i}{1997/03/15}{Macro added, moved from
+% \file{.ldf} files}
+% Then we can define the command |\latintext| which is a
+% declarative switch to a latin font-encoding.
+% \begin{macrocode}
+\DeclareRobustCommand{\latintext}{%
+ \fontencoding{\latinencoding}\selectfont
+ \def\encodingdefault{\latinencoding}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textlatin}
+% \changes{babel~3.6i}{1997/03/15}{Macro added, moved from
+% \file{.ldf} files}
+% \changes{babel~3.7j}{2003/03/19}{added \cs{leavevmode} to prevent a
+% paragraph starting \emph{inside} the group}
+% \changes{babel~3.7k}{2003/10/12}{Use \cs{DeclareTextFontComand}}
+% This command takes an argument which is then typeset using the
+% requested font encoding. In order to avoid many encoding switches
+% it operates in a local scope.
+% \begin{macrocode}
+\ifx\@undefined\DeclareTextFontCommand
+ \DeclareRobustCommand{\textlatin}[1]{\leavevmode{\latintext #1}}
+\else
+ \DeclareTextFontCommand{\textlatin}{\latintext}
+\fi
+%</core>
+% \end{macrocode}
+% \end{macro}
+%
+% We also need to redefine a number of commands to ensure that the
+% right font encoding is used, but this can't be done before
+% \file{babel.def} is loaded.
+% \changes{babel~3.6o}{1999/04/07}{Moved the rest of the font encoding
+% related definitions to their original place}
+%
+% \subsection{Multiple languages}
+%
+% With \TeX\ version~3.0 it has become possible to load hyphenation
+% patterns for more than one language. This means that some extra
+% administration has to be taken care of. The user has to know for
+% which languages patterns have been loaded, and what values of
+% |\language| have been used.
+%
+% Some discussion has been going on in the \TeX\ world about how to
+% use |\language|. Some have suggested to set a fixed standard,
+% i.\,e., patterns for each language should \emph{always} be loaded
+% in the same location. It has also been suggested to use the
+% \textsc{iso} list for this purpose. Others have pointed out that
+% the \textsc{iso} list contains more than 256~languages, which
+% have \emph{not} been numbered consecutively.
+%
+% I think the best way to use |\language|, is to use it
+% dynamically. This code implements an algorithm to do so. It uses
+% an external file in which the person who maintains a \TeX\
+% environment has to record for which languages he has hyphenation
+% patterns \emph{and} in which files these are stored\footnote{This
+% is because different operating systems sometimes use \emph{very}
+% different file-naming conventions.}. When hyphenation exceptions
+% are stored in a separate file this can be indicated by naming
+% that file \emph{after} the file with the hyphenation patterns.
+%
+% This ``configuration file'' can contain empty lines and comments,
+% as well as lines which start with an equals (\texttt{=})
+% sign. Such a line will instruct \LaTeX\ that the hyphenation
+% patterns just processed have to be known under an alternative
+% name. Here is an example:
+% \begin{verbatim}
+% % File : language.dat
+% % Purpose : tell iniTeX what files with patterns to load.
+% english english.hyphenations
+% =british
+%
+% dutch hyphen.dutch exceptions.dutch % Nederlands
+% german hyphen.ger
+% \end{verbatim}
+%
+% As the file \file{switch.def} needs to be read only once, we
+% check whether it was read before. If it was, the command
+% |\iflanguage| is already defined, so we can stop processing.
+% \begin{macrocode}
+%<*kernel>
+%<*!patterns>
+\expandafter\ifx\csname iflanguage\endcsname\relax \else
+\expandafter\endinput
+\fi
+%</!patterns>
+% \end{macrocode}
+%
+% \begin{macro}{\language}
+% Plain \TeX\ version~3.0 provides the primitive |\language| that
+% is used to store the current language. When used with a pre-3.0
+% version this function has to be implemented by allocating a
+% counter.
+% \begin{macrocode}
+\ifx\language\@undefined
+ \csname newcount\endcsname\language
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\last@language}
+% Another counter is used to store the last language defined. For
+% pre-3.0 formats an extra counter has to be allocated,
+% \begin{macrocode}
+\ifx\newlanguage\@undefined
+ \csname newcount\endcsname\last@language
+% \end{macrocode}
+% plain \TeX\ version 3.0 uses |\count 19| for this purpose.
+% \begin{macrocode}
+\else
+ \countdef\last@language=19
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addlanguage}
+%
+% To add languages to \TeX's memory plain \TeX\ version~3.0
+% supplies |\newlanguage|, in a pre-3.0 environment a similar macro
+% has to be provided. For both cases a new macro is defined here,
+% because the original |\newlanguage| was defined to be |\outer|.
+%
+% For a format based on plain version~2.x, the definition of
+% |\newlanguage| can not be copied because |\count 19| is used for
+% other purposes in these formats. Therefor |\addlanguage| is
+% defined using a definition based on the macros used to define
+% |\newlanguage| in plain \TeX\ version~3.0.
+% \changes{babel~3.2}{1991/11/11}{Added a \texttt{\%}, removed
+% \texttt{by}}
+% \begin{macrocode}
+\ifx\newlanguage\@undefined
+ \def\addlanguage#1{%
+ \global\advance\last@language \@ne
+ \ifnum\last@language<\@cclvi
+ \else
+ \errmessage{No room for a new \string\language!}%
+ \fi
+ \global\chardef#1\last@language
+ \wlog{\string#1 = \string\language\the\last@language}}
+% \end{macrocode}
+%
+% For formats based on plain version~3.0 the definition of
+% |\newlanguage| can be simply copied, removing |\outer|.
+%
+% \begin{macrocode}
+\else
+ \def\addlanguage{\alloc@9\language\chardef\@cclvi}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adddialect}
+% The macro |\adddialect| can be used to add the name of a dialect
+% or variant language, for which an already defined hyphenation
+% table can be used.
+% \changes{babel~3.2}{1991/11/11}{Added \cs{relax}}
+% \begin{macrocode}
+\def\adddialect#1#2{%
+ \global\chardef#1#2\relax
+ \wlog{\string#1 = a dialect from \string\language#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\iflanguage}
+% Users might want to test (in a private package for instance)
+% which language is currently active. For this we provide a test
+% macro, |\iflanguage|, that has three arguments. It checks
+% whether the first argument is a known language. If so, it
+% compares the first argument with the value of |\language|. Then,
+% depending on the result of the comparison, it executes either the
+% second or the third argument.
+% \changes{babel~3.0a}{1991/05/29}{Added \cs{@bsphack} and
+% \cs{@esphack}}
+% \changes{babel~3.0c}{1991/07/21}{Added comment character after
+% \texttt{\#2}}
+% \changes{babel~3.0d}{1991/08/08}{Removed superfluous
+% \cs{expandafter}}
+% \changes{babel~3.0d}{1991/10/07}{Removed space hacks and use of
+% \cs{@ifundefined}}
+% \changes{babel~3.2}{1991/11/11}{Rephrased \cs{ifnum} test}
+% \changes{babel~3.7a}{1998/06/10}{Now evaluate the \cs{ifnum} test
+% \emph{after} the \cs{fi} from the \cs{ifx} test and use
+% \cs{@firstoftwo} and \cs{@secondoftwo}}
+% \changes{babel~3.7b}{1998/06/29}{Slight enhancement: added braces
+% around first argument of \cs{bbl@afterfi}}
+% \begin{macrocode}
+\def\iflanguage#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+ \bbl@afterfi{\ifnum\csname l@#1\endcsname=\language
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\selectlanguage}
+% The macro |\selectlanguage| checks whether the language is
+% already defined before it performs its actual task, which is to
+% update |\language| and activate language-specific definitions.
+%
+% To allow the call of |\selectlanguage| either with a control
+% sequence name or with a simple string as argument, we have to use
+% a trick to delete the optional escape character.
+%
+% To convert a control sequence to a string, we use the |\string|
+% primitive. Next we have to look at the first character of this
+% string and compare it with the escape character. Because this
+% escape character can be changed by setting the internal integer
+% |\escapechar| to a character number, we have to compare this
+% number with the character of the string. To do this we have to
+% use \TeX's backquote notation to specify the character as a
+% number.
+%
+% If the first character of the |\string|'ed argument is the
+% current escape character, the comparison has stripped this
+% character and the rest in the `then' part consists of the rest of
+% the control sequence name. Otherwise we know that either the
+% argument is not a control sequence or |\escapechar| is set to a
+% value outside of the character range~$0$--$255$.
+%
+% If the user gives an empty argument, we provide a default
+% argument for |\string|. This argument should expand to nothing.
+%
+% \changes{babel~3.0c}{1991/06/06}{Made \cs{selectlanguage}
+% robust}
+% \changes{babel~3.2}{1991/11/11}{Modified to allow arguments that
+% start with an escape character}
+% \changes{babel~3.2a}{1991/11/17}{Simplified the modification to
+% allow the use in a \cs{write} command}
+% \changes{babel~3.5b}{1995/05/13}{Store the name of the current
+% language in a control sequence instead of passing the whole macro
+% construct to strip the escape character in the argument of
+% \cs{selectlanguage }.}
+% \changes{babel~3.5f}{1995/08/30}{Added a missing percent character}
+% \changes{babel~3.5f}{1995/11/16}{Moved check for escape character
+% one level down in the expansion}
+% \begin{macrocode}
+\edef\selectlanguage{%
+ \noexpand\protect
+ \expandafter\noexpand\csname selectlanguage \endcsname
+ }
+% \end{macrocode}
+% Because the command |\selectlanguage| could be used in a moving
+% argument it expands to \verb*=\protect\selectlanguage =.
+% Therefor, we have to make sure that a macro |\protect| exists.
+% If it doesn't it is |\let| to |\relax|.
+% \begin{macrocode}
+\ifx\@undefined\protect\let\protect\relax\fi
+% \end{macrocode}
+% As \LaTeX$\:$2.09 writes to files \textit{expanded} whereas
+% \LaTeXe\ takes care \textit{not} to expand the arguments of
+% |\write| statements we need to be a bit clever about the way we
+% add information to \file{.aux} files. Therefor we introduce the
+% macro |\xstring| which should expand to the right amount of
+% |\string|'s.
+% \begin{macrocode}
+\ifx\documentclass\@undefined
+ \def\xstring{\string\string\string}
+\else
+ \let\xstring\string
+\fi
+% \end{macrocode}
+%
+% \changes{babel~3.5b}{1995/03/04}{Changed the name of the internal
+% macro to \cs{selectlanguage }.}
+% \changes{babel~3.5b}{1995/03/05}{Added an extra level of expansion to
+% separate the switching mechanism from writing to aux files}
+% \changes{babel~3.7f}{2000/09/25}{Use \cs{aftergroup} to keep the
+% language grouping correct in auxiliary files {PR3091}}
+% Since version 3.5 \babel\ writes entries to the auxiliary files in
+% order to typeset table of contents etc. in the correct language
+% environment.
+% \begin{macro}{\bbl@pop@language}
+% \emph{But} when the language change happens \emph{inside} a group
+% the end of the group doesn't write anything to the auxiliary
+% files. Therefor we need \TeX's |aftergroup| mechanism to help
+% us. The command |\aftergroup| stores the token immediately
+% following it to be executed when the current group is closed. So
+% we define a temporary control sequence |\bbl@pop@language| to be
+% executed at the end of the group. It calls |\bbl@set@language|
+% with the name of the current language as its argument.
+%
+% \changes{babel~3.7j}{2003/03/18}{Introduce the language stack
+% mechanism}
+% \begin{macro}{\bbl@language@stack}
+% The previous solution works for one level of nesting groups, but
+% as soon as more levels are used it is no longer adequate. For
+% that case we need to keep track of the nested languages using a
+% stack mechanism. This stack is called |\bbl@language@stack| and
+% initially empty.
+% \begin{macrocode}
+\xdef\bbl@language@stack{}
+% \end{macrocode}
+% When using a stack we need a mechanism to push an element on the
+% stack and to retrieve the information afterwards.
+% \begin{macro}{\bbl@push@language}
+% \begin{macro}{\bbl@pop@language}
+% The stack is simply a list of languagenames, separated with a `+'
+% sign; the push function can be simple:
+% \begin{macrocode}
+\def\bbl@push@language{%
+ \xdef\bbl@language@stack{\languagename+\bbl@language@stack}%
+ }
+% \end{macrocode}
+% Retrieving information from the stack is a little bit less simple,
+% as we need to remove the element from the stack while storing it
+% in the macro |\languagename|. For this we first define a helper function.
+% \begin{macro}{\bbl@pop@lang}
+% This macro stores its first element (which is delimited by the
+% `+'-sign) in |\languagename| and stores the rest of the string
+% (delimited by `-') in its third argument.
+% \begin{macrocode}
+\def\bbl@pop@lang#1+#2-#3{%
+ \def\languagename{#1}\xdef#3{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+% The reason for the somewhat weird arrangement of arguments to the
+% helper function is the fact it is called in the following way:
+% \begin{macrocode}
+\def\bbl@pop@language{%
+ \expandafter\bbl@pop@lang\bbl@language@stack-\bbl@language@stack
+% \end{macrocode}
+% This means that before |\bbl@pop@lang| is executed \TeX\ first
+% \emph{expands} the stack, stored in |\bbl@language@stack|. The
+% result of that is that the argument string of |\bbl@pop@lang|
+% contains one or more language names, each followed by a `+'-sign
+% (zero language names won't occur as this macro will only be
+% called after something has been pushed on the stack) followed by
+% the `-'-sign and finally the reference to the stack.
+% \begin{macrocode}$$
+ \expandafter\bbl@set@language\expandafter{\languagename}%
+ }
+% \end{macrocode}
+% Once the name of the previous language is retrieved from the stack,
+% it is fed to |\bbl@set@language| to do the actual work of
+% switching everything that needs switching.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{babel~3.7j}{2003/03/18}{Now use the language stack mechanism}
+% \begin{macrocode}
+\expandafter\def\csname selectlanguage \endcsname#1{%
+ \bbl@push@language
+ \aftergroup\bbl@pop@language
+ \bbl@set@language{#1}}
+% \end{macrocode}
+% \changes{babel~3.7m}{2003/11/12}{Removed the superfluous empty
+% definition of \cs{bbl@pop@language}}
+% \end{macro}
+%
+% \begin{macro}{\bbl@set@language}
+% \changes{babel~3.5f}{1995/11/16}{Now also define \cs{languagename}
+% at this level}
+% \changes{babel~3.7f}{2000/09/25}{Macro \cs{bbl@set@language}
+% introduced}
+% The macro |\bbl@set@language| takes care of switching the language
+% environment \emph{and} of writing entries on the auxiliary files.
+% \begin{macrocode}
+\def\bbl@set@language#1{%
+ \edef\languagename{%
+ \ifnum\escapechar=\expandafter`\string#1\@empty
+ \else \string#1\@empty\fi}%
+ \select@language{\languagename}%
+% \end{macrocode}
+% We also write a command to change the current language in the
+% auxiliary files.
+% \changes{babel~3.5a}{1995/02/17}{write the language change to the
+% auxiliary files}
+% \begin{macrocode}
+ \if@filesw
+ \protected@write\@auxout{}{\string\select@language{\languagename}}%
+ \addtocontents{toc}{\xstring\select@language{\languagename}}%
+ \addtocontents{lof}{\xstring\select@language{\languagename}}%
+ \addtocontents{lot}{\xstring\select@language{\languagename}}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% First, check if the user asks for a known language. If so,
+% update the value of |\language| and call |\originalTeX|
+% to bring \TeX\ in a certain pre-defined state.
+% \changes{babel~3.0a}{1991/05/29}{Added \cs{@bsphack} and
+% \cs{@esphack}}
+% \changes{babel~3.0d}{1991/08/08}{Removed superfluous
+% \cs{expandafter}}
+% \changes{babel~3.0d}{1991/10/07}{Removed space hacks and use of
+% \cs{@ifundefined}}
+% \changes{babel~3.2a}{1991/11/17}{Added \cs{relax} as first command
+% to stop an expansion if \cs{protect} is empty}
+% \changes{babel~3.6a}{1996/11/07}{Check for the existence of
+% \cs{date...} instead of \cs{l@...}}
+% \changes{babel~3.7m}{2003/11/16}{Check for the existence of both
+% \cs{l@...} and \cs{date...}}
+% \begin{macrocode}
+\def\select@language#1{%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+ \expandafter\ifx\csname date#1\endcsname\relax
+ \@noopterr{#1}%
+ \else
+ \language=\csname l@#1\endcsname\relax
+ \originalTeX
+% \end{macrocode}
+% The name of the language is stored 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). Then we have to \emph{re}define
+% |\originalTeX| to compensate for the things that have been
+% activated. To save memory space for the macro definition of
+% |\originalTeX|, we construct the control sequence name for the
+% |\noextras|\langvar\ command at definition time by expanding the
+% |\csname| primitive.
+% \changes{babel~3.0a}{1991/06/06}{Replaced \cs{gdef} with \cs{def}}
+% \changes{babel~3.1}{1991/10/31}{\cs{originalTeX} should only be
+% executed once}
+% \changes{babel~3.2a}{1991/11/17}{Added three \cs{expandafter}s
+% to save macro space for \cs{originalTeX}}
+% \changes{babel~3.2a}{1991/11/20}{Moved definition of
+% \cs{originalTeX} before \cs{extras\langvar}}
+% \changes{babel~3.2a}{1991/11/24}{Set \cs{originalTeX} to
+% \cs{empty}, because it should be expandable.}
+% \begin{macrocode}
+ \expandafter\def\expandafter\originalTeX
+ \expandafter{\csname noextras#1\endcsname
+ \let\originalTeX\@empty}%
+% \end{macrocode}
+% \changes{babel~3.6d}{1997/01/07}{set the language shorthands to
+% `none' before switching on the extras}
+% \begin{macrocode}
+ \languageshorthands{none}%
+ \babel@beginsave
+% \end{macrocode}
+% Now activate the language-specific definitions. This is done by
+% constructing the names of three macros by concatenating three
+% words with the argument of |\selectlanguage|, and calling these
+% macros.
+% \changes{babel~3.5b}{1995/05/13}{Separated the setting of the
+% hyphenmin values}
+% \begin{macrocode}
+ \csname captions#1\endcsname
+ \csname date#1\endcsname
+ \csname extras#1\endcsname\relax
+% \end{macrocode}
+% The switching of the values of |\lefthyphenmin| and
+% |\righthyphenmin| is somewhat different. First we save their
+% current values, then we check if |\|\langvar|hyphenmins| is
+% defined. If it is not, we set default values (2 and 3), otherwise
+% the values in |\|\langvar|hyphenmins| will be used.
+% \changes{babel~3.5b}{1995/06/05}{Addedd default setting of hyphenmin
+% parameters}
+% \begin{macrocode}
+ \babel@savevariable\lefthyphenmin
+ \babel@savevariable\righthyphenmin
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname\relax
+ \fi
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{otherlanguage}
+% The \Lenv{otherlanguage} environment can be used as an
+% alternative to using the |\selectlanguage| declarative
+% command. When you are typesetting a document which mixes
+% left-to-right and right-to-left typesetting you have to use this
+% environment in order to let things work as you expect them to.
+%
+% The first thing this environment does is store the name of the
+% language in |\languagename|; it then calls
+% \verb*=\selectlanguage = to switch on everything that is needed for
+% this language The |\ignorespaces| command is necessary to hide
+% the environment when it is entered in horizontal mode.
+% \changes{babel~3.5d}{1995/06/22}{environment added}
+% \changes{babel~3.5e}{1995/07/07}{changed name}
+% \changes{babel~3.7j}{2003/03/18}{rely on \cs{selectlanguage } to
+% keep track of the nesting}
+% \begin{macrocode}
+\long\def\otherlanguage#1{%
+ \csname selectlanguage \endcsname{#1}%
+ \ignorespaces
+ }
+% \end{macrocode}
+% The |\endotherlanguage| part of the environment calls
+% |\originalTeX| to restore (most of) the settings and tries to
+% hide itself when it is called in horizontal mode.
+% \begin{macrocode}
+\long\def\endotherlanguage{%
+ \originalTeX
+ \global\@ignoretrue\ignorespaces
+ }
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \begin{environment}{otherlanguage*}
+% The \Lenv{otherlanguage} environment is meant to be used when a
+% large part of text from a different language needs to be typeset,
+% but without changing the translation of words such as `figure'.
+%
+% This environment makes use of |\foreign@language|.
+% \changes{babel~3.5f}{1996/05/29}{environment added}
+% \changes{babel~3.6d}{1997/01/07}{Introduced \cs{foreign@language}}
+% \begin{macrocode}
+\expandafter\def\csname otherlanguage*\endcsname#1{%
+ \foreign@language{#1}%
+ }
+% \end{macrocode}
+% At the end of the environment we need to switch off the extra
+% definitions. The grouping mechanism of the environment will take
+% care of resetting the correct hyphenation rules.
+% \begin{macrocode}
+\expandafter\def\csname endotherlanguage*\endcsname{%
+ \csname noextras\languagename\endcsname
+ }
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\foreignlanguage}
+% The |\foreignlanguage| command is another substitute for the
+% |\selectlanguage| command. This command takes two arguments, the
+% first argument is the name of the language to use for typesetting
+% the text specified in the second argument.
+%
+% Unlike |\selectlanguage| this command doesn't switch
+% \emph{everything}, it only switches the hyphenation rules and the
+% extra definitions for the language specified. It does this within
+% a group and assumes the |\extras|\langvar\ command doesn't make
+% any |\global| changes. The coding is very similar to part of
+% |\selectlanguage|.
+% \changes{babel~3.5d}{1995/06/22}{Macro added}
+% \changes{babel~3.6d}{1997/01/07}{Introduced \cs{foreign@language}}
+% \changes{babel~3.7a}{1998/03/12}{Added executing \cs{originalTeX}}
+% \begin{macrocode}
+\def\foreignlanguage{\protect\csname foreignlanguage \endcsname}
+\expandafter\def\csname foreignlanguage \endcsname#1#2{%
+ \begingroup
+ \originalTeX
+ \foreign@language{#1}%
+ #2%
+ \csname noextras#1\endcsname
+ \endgroup
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\foreign@language}
+% \changes{babel~3.6d}{1997/01/07}{New macro}
+% This macro does the work for |\foreignlanguage| and the
+% \Lenv{otherlanguage*} environment.
+% \begin{macrocode}
+\def\foreign@language#1{%
+% \end{macrocode}
+% First we need to store the name of the language and check that it
+% is a known language.
+% \begin{macrocode}
+ \def\languagename{#1}%
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+% \end{macrocode}
+% If it is we can select the proper hyphenation table and switch on
+% the extra definitions for this language.
+% \changes{babel~3.6d}{1997/01/07}{set the language shorthands to
+% `none' before switching on the extras}
+% \begin{macrocode}
+ \language=\csname l@#1\endcsname\relax
+ \languageshorthands{none}%
+% \end{macrocode}
+% Then we set the left- and right hyphenmin variables.
+% \changes{babel~3.6d}{1997/01/07}{Added \cs{relax} to prevent
+% disappearance of the first token after this command.}
+% \begin{macrocode}
+ \csname extras#1\endcsname
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname\relax
+ \fi
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{hyphenrules}
+% \changes{babel~3.7e}{2000/01/28}{Added environment hyphenrules}
+% The environment \Lenv{hyphenrules} can be used to select
+% \emph{just} the hyphenation rules. This environment does
+% \emph{not} change |\languagename| and when the hyphenation rules
+% specified were not loaded it has no effect.
+% \begin{macrocode}
+\def\hyphenrules#1{%
+ \expandafter\ifx\csname l@#1\endcsname\@undefined
+ \@nolanerr{#1}%
+ \else
+ \language=\csname l@#1\endcsname\relax
+ \languageshorthands{none}%
+ \fi
+ }
+\def\endhyphenrules{}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\providehyphenmins}
+% \changes{babel~3.7f}{2000/02/18}{added macro}
+% The macro |\providehyphenmins| should be used in the language
+% definition files to provide a \emph{default} setting for the
+% hyphenation parameters |\lefthyphenmin| and |\righthyphenmin|. If
+% the macro |\|\langvar|hyphenmins| is already defined this command
+% has no effect.
+% \begin{macrocode}
+\def\providehyphenmins#1#2{%
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \@namedef{#1hyphenmins}{#2}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\set@hyphenmins}
+% This macro sets the values of |\lefthyphenmin| and
+% |\righthyphenmin|. It expects two values as its argument.
+% \begin{macrocode}
+\def\set@hyphenmins#1#2{\lefthyphenmin#1\righthyphenmin#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LdfInit}
+% \changes{babel~3.6a}{1996/10/16}{Macro added}
+% This macro is defined in two versions. The first version is to be
+% part of the `kernel' of \babel, ie. the part that is loaded in
+% the format; the second version is defined in \file{babel.def}.
+% The version in the format just checks the category code of the
+% ampersand and then loads \file{babel.def}.
+% \begin{macrocode}
+\def\LdfInit{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+% \end{macrocode}
+% The category code of the ampersand is restored and the macro
+% calls itself again with the new definition from
+% \file{babel.def}
+% \begin{macrocode}
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \LdfInit}
+%</kernel>
+% \end{macrocode}
+% The second version of this macro takes two arguments. The first
+% argument is the name of the language that will be defined in the
+% language definition file; the second argument is either a control
+% sequence or a string from which a control sequence should be
+% constructed. The existence of the control sequence indicates that
+% the file has been processed before.
+%
+% At the start of processing a language definition file we always
+% check the category code of the ampersand. We make sure that it is
+% a `letter' during the processing of the file.
+% \begin{macrocode}
+%<*core>
+\def\LdfInit#1#2{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+% \end{macrocode}
+% Another character that needs to have the correct category code
+% during processing of language definition files is the equals sign,
+% `=', because it is sometimes used in constructions with the
+% |\let| primitive. Therefor we store its current catcode and
+% restore it later on.
+% \changes{babel~3.7o}{2003/11/26}{make sure the equals sign has its
+% default category code}
+% \begin{macrocode}
+ \chardef\eqcatcode=\catcode`\=
+ \catcode`\==12\relax
+% \end{macrocode}
+% Now we check whether we should perhaps stop the processing of
+% this file. To do this we first need to check whether the second
+% argument that is passed to |\LdfInit| is a control sequence. We
+% do that by looking at the first token after passing |#2| through
+% |string|. When it is equal to |\@backslashchar| we are dealing
+% with a control sequence which we can compare with |\@undefined|.
+% \begin{macrocode}
+ \let\bbl@tempa\relax
+ \expandafter\if\expandafter\@backslashchar
+ \expandafter\@car\string#2\@nil
+ \ifx#2\@undefined
+ \else
+% \end{macrocode}
+% If so, we call |\ldf@quit| (but after the end of this |\if|
+% construction) to set the main language, restore the category code
+% of the @-sign and call |\endinput|.
+% \begin{macrocode}
+ \def\bbl@tempa{\ldf@quit{#1}}
+ \fi
+ \else
+% \end{macrocode}
+% When |#2| was \emph{not} a control sequence we construct one and
+% compare it with |\relax|.
+% \begin{macrocode}
+ \expandafter\ifx\csname#2\endcsname\relax
+ \else
+ \def\bbl@tempa{\ldf@quit{#1}}
+ \fi
+ \fi
+ \bbl@tempa
+% \end{macrocode}
+% Finally we check |\originalTeX|.
+% \begin{macrocode}
+ \ifx\originalTeX\@undefined
+ \let\originalTeX\@empty
+ \else
+ \originalTeX
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ldf@quit}
+% \changes{babel~3.6a}{1996/10/29}{Macro added}
+% This macro interrupts the processing of a language definition file.
+% \changes{babel~3.7o}{2003/11/26}{Also restore the category code of
+% the equals sign}
+% \begin{macrocode}
+\def\ldf@quit#1{%
+ \expandafter\main@language\expandafter{#1}%
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \catcode`\==\eqcatcode \let\eqcatcode\relax
+ \endinput
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ldf@finish}
+% \changes{babel~3.6a}{1996/10/16}{Macro added}
+% This macro takes one argument. It is the name of the language
+% that was defined in the language definition file.
+%
+% We load the local configuration file if one is present, we set
+% the main language (taking into account that the argument might be
+% a control sequence that needs to be expanded) and reset the
+% category code of the @-sign.
+% \changes{babel~3.7o}{2003/11/26}{Also restore the category code of
+% the equals sign}
+% \begin{macrocode}
+\def\ldf@finish#1{%
+ \loadlocalcfg{#1}%
+ \expandafter\main@language\expandafter{#1}%
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \catcode`\==\eqcatcode \let\eqcatcode\relax
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% After the preamble of the document the commands |\LdfInit|,
+% |\ldf@quit| and |\ldf@finish| are no longer needed. Therefor
+% they are turned into warning messages in \LaTeX.
+% \begin{macrocode}
+\@onlypreamble\LdfInit
+\@onlypreamble\ldf@quit
+\@onlypreamble\ldf@finish
+% \end{macrocode}
+%
+% \begin{macro}{\main@language}
+% \changes{babel~3.5a}{1995/02/17}{Macro added}
+% \changes{babel~3.6a}{1996/10/16}{\cs{main@language} now also sets
+% \cs{languagename} and \cs{l@languagename} for use by other
+% packages in the preamble of a document}
+% \begin{macro}{\bbl@main@language}
+% \changes{babel~3.5a}{1995/02/17}{Macro added}
+% This command should be used in the various language definition
+% files. It stores its argument in |\bbl@main@language|; to be used
+% to switch to the correct language at the beginning of the
+% document.
+% \begin{macrocode}
+\def\main@language#1{%
+ \def\bbl@main@language{#1}%
+ \let\languagename\bbl@main@language
+ \language=\csname l@\languagename\endcsname\relax
+ }
+% \end{macrocode}
+% The default is to use English as the main language.
+% \changes{babel~3.6c}{1997/01/05}{When \file{hyphen.cfg} is not
+% loaded in the format \cs{l@english} might not be defined; assume
+% english is language 0}
+% \begin{macrocode}
+\ifx\l@english\@undefined
+ \let\l@english\z@
+\fi
+\main@language{english}
+% \end{macrocode}
+% We also have to make sure that some code gets executed at the
+% beginning of the document.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \expandafter\selectlanguage\expandafter{\bbl@main@language}}
+%</core>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\originalTeX}
+% The macro|\originalTeX| should be known to \TeX\ at this moment.
+% As it has to be expandable we |\let| it to |\@empty| instead of
+% |\relax|.
+% \changes{babel~3.2a}{1991/11/24}{Set \cs{originalTeX} to
+% \cs{empty}, because it should be expandable.}
+% \begin{macrocode}
+%<*kernel>
+\ifx\originalTeX\@undefined\let\originalTeX\@empty\fi
+% \end{macrocode}
+% Because this part of the code can be included in a format, we
+% make sure that the macro which initialises the save mechanism,
+% |\babel@beginsave|, is not considered to be undefined.
+% \begin{macrocode}
+\ifx\babel@beginsave\@undefined\let\babel@beginsave\relax\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nolanerr}
+% \changes{babel~3.4e}{1994/06/25}{Use \cs{PackageError} in \LaTeXe\
+% mode}
+% \begin{macro}{\@nopatterns}
+% \changes{babel~3.4e}{1994/06/25}{Macro added}
+% The \babel\ package will signal an error when a documents tries
+% to select a language that hasn't been defined earlier. When a
+% user selects a language for which no hyphenation patterns were
+% loaded into the format he will be given a warning about that
+% fact. We revert to the patterns for |\language|=0 in that case.
+% In most formats that will be (US)english, but it might also be
+% empty.
+% \begin{macro}{\@noopterr}
+% \changes{babel~3.7m}{2003/11/16}{Macro added}
+% When the package was loaded without options not everything will
+% work as expected. An error message is issued in that case.
+%
+% When the format knows about |\PackageError| it must be \LaTeXe,
+% so we can safely use its error handling interface. Otherwise
+% we'll have to `keep it simple'.
+% \changes{babel~3.0d}{1991/10/07}{Added a percent sign to remove
+% unwanted white space}
+% \changes{babel~3.5a}{1995/02/15}{Added \cs{@activated} to log active
+% characters}
+% \changes{babel~3.5c}{1995/06/19}{Added missing closing brace}
+% \begin{macrocode}
+\ifx\PackageError\@undefined
+ \def\@nolanerr#1{%
+ \errhelp{Your command will be ignored, type <return> to proceed}%
+ \errmessage{You haven't defined the language #1\space yet}}
+ \def\@nopatterns#1{%
+ \message{No hyphenation patterns were loaded for}%
+ \message{the language `#1'}%
+ \message{I will use the patterns loaded for \string\language=0
+ instead}}
+ \def\@noopterr#1{%
+ \errmessage{The option #1 was not specified in \string\usepackage}
+ \errhelp{You may continue, but expect unexpected results}}
+ \def\@activated#1{%
+ \wlog{Package babel Info: Making #1 an active character}}
+\else
+ \newcommand*{\@nolanerr}[1]{%
+ \PackageError{babel}%
+ {You haven't defined the language #1\space yet}%
+ {Your command will be ignored, type <return> to proceed}}
+ \newcommand*{\@nopatterns}[1]{%
+ \PackageWarningNoLine{babel}%
+ {No hyphenation patterns were loaded for\MessageBreak
+ the language `#1'\MessageBreak
+ I will use the patterns loaded for \string\language=0
+ instead}}
+ \newcommand*{\@noopterr}[1]{%
+ \PackageError{babel}%
+ {You haven't loaded the option #1\space yet}%
+ {You may proceed, but expect unexpected results}}
+ \newcommand*{\@activated}[1]{%
+ \PackageInfo{babel}{%
+ Making #1 an active character}}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The following code is meant to be read by ini\TeX\ because it
+% should instruct \TeX\ to read hyphenation patterns. To this end
+% the \texttt{docstrip} option \texttt{patterns} can be used to
+% include this code in the file \file{hyphen.cfg}.
+% \begin{macrocode}
+%<*patterns>
+% \end{macrocode}
+%
+% \changes{babel~3.5g}{1996/07/09}{Removed the use of
+% \cs{patterns@loaded} altogether}
+%
+% \begin{macro}{\process@line}
+% \changes{babel~3.5b}{1995/04/28}{added macro}
+% Each line in the file \file{language.dat} is processed by
+% |\process@line| after it is read. The first thing this macro does
+% is to check whether the line starts with \texttt{=}.
+% When the first token of a line is an \texttt{=}, the macro
+% |\process@synonym| is called; otherwise the macro
+% |\process@language| will continue.
+% \changes{babel~3.5g}{1996/07/09}{Simplified code, removing
+% \cs{bbl@eq@}}
+% \changes{babel~3.7c}{1999/04/09}{added an extra argument in order to
+% prevent a trailing space from becoming part of the control
+% sequence when defining a synonym (PR 2851)}
+% \begin{macrocode}
+\def\process@line#1#2 #3/{%
+ \ifx=#1
+ \process@synonym#2 /
+ \else
+ \process@language#1#2 #3/%
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\process@synonym}
+% \changes{babel~3.5b}{1995/04/28}{added macro}
+% This macro takes care of the lines which start with an
+% \texttt{=}. It needs an empty token register to begin with.
+% \begin{macrocode}
+\toks@{}
+\def\process@synonym#1 /{%
+ \ifnum\last@language=\m@ne
+% \end{macrocode}
+% When no languages have been loaded yet, the name following the
+% \texttt{=} will be a synonym for hyphenation register 0.
+% \begin{macrocode}
+ \expandafter\chardef\csname l@#1\endcsname0\relax
+ \wlog{\string\l@#1=\string\language0}
+% \end{macrocode}
+% As no hyphenation patterns are read in yet, we can not yet set
+% the hyphenmin parameters. Therefor a commands to do so is stored
+% in a token register and executed when the first pattern file has
+% been processed.
+% \changes{babel~3.7c}{1999/04/27}{Use a token register to temporarily
+% store a command to set hyphenmin parameters for the synonym which
+% is defined \emph{before} the first pattern file is processed}
+% \begin{macrocode}
+ \toks@\expandafter{\the\toks@
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname}%
+ \else
+% \end{macrocode}
+% Otherwise the name will be a synonym for the language loaded last.
+% \begin{macrocode}
+ \expandafter\chardef\csname l@#1\endcsname\last@language
+ \wlog{\string\l@#1=\string\language\the\last@language}
+% \end{macrocode}
+% We also need to copy the hyphenmin parameters for the synonym.
+% \changes{babel~3.7c}{1999/04/22}{Now also store hyphenmin parameters
+% for language synonyms}
+% \begin{macrocode}
+ \expandafter\let\csname #1hyphenmins\expandafter\endcsname
+ \csname\languagename hyphenmins\endcsname
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\process@language}
+% The macro |\process@language| is used to process a non-empty line
+% from the `configuration file'. It has three arguments, each
+% delimited by white space. The third argument is optional,
+% so a |/| character is expected to delimit the last
+% argument. The first argument is the `name' of a language; the
+% second is the name of the file that contains the patterns. The
+% optional third argument is the name of a file containing
+% hyphenation exceptions.
+%
+% The first thing to do is call |\addlanguage| to allocate a
+% pattern register and to make that register `active'.
+% \changes{babel~3.0d}{1991/08/08}{Removed superfluous
+% \cs{expandafter}}
+% \changes{babel~3.0d}{1991/08/21}{Reinserted \cs{expandafter}}
+% \changes{babel~3.0d}{1991/10/27}{Added the collection of pattern
+% names.}
+% \changes{babel~3.7c}{1999/04/22}{Also store \cs{languagename} for
+% possible later use in \cs{process@synonym}}
+% \begin{macrocode}
+\def\process@language#1 #2 #3/{%
+ \expandafter\addlanguage\csname l@#1\endcsname
+ \expandafter\language\csname l@#1\endcsname
+ \def\languagename{#1}%
+% \end{macrocode}
+% Then the `name' of the language that will be loaded now is
+% added to the token register |\toks8|. and finally
+% the pattern file is read.
+% \begin{macrocode}
+ \global\toks8\expandafter{\the\toks8#1, }%
+% \end{macrocode}
+% \changes{babel~3.7f}{2000/02/18}{Allow for the encoding to be used
+% as part of the language name}
+% For some hyphenation patterns it is needed to load them with a
+% specific font encoding selected. This can be specified in the
+% file \file{language.dat} by adding for instance `\texttt{:T1}' to
+% the name of the language. The macro |\bbl@get@enc| extracts the
+% font encoding from the language name and stores it in
+% |\bbl@hyph@enc|.
+% \begin{macrocode}
+ \begingroup
+ \bbl@get@enc#1:\@@@
+ \ifx\bbl@hyph@enc\@empty
+ \else
+ \fontencoding{\bbl@hyph@enc}\selectfont
+ \fi
+% \end{macrocode}
+%
+% \changes{babel~3.4e}{1994/06/24}{Added code to detect assignments to
+% left- and righthyphenmin in the patternfile.}
+% Some pattern files contain assignments to |\lefthyphenmin| and
+% |\righthyphenmin|. \TeX\ does not keep track of these
+% assignments. Therefor we try to detect such assignments and
+% store them in the |\|\langvar|hyphenmins| macro. When no
+% assignments were made we provide a default setting.
+% \begin{macrocode}
+ \lefthyphenmin\m@ne
+% \end{macrocode}
+% Some pattern files contain changes to the |\lccode| en |\uccode|
+% arrays. Such changes should remain local to the language;
+% therefor we process the pattern file in a group; the |\patterns|
+% command acts globally so its effect will be remembered.
+% \changes{babel~3.7a}{1998/03/27}{Read pattern files in a group}
+% \changes{babel~3.7c}{1999/04/05}{need to set hyphenmin values
+% globally}
+% \changes{babel~3.7c}{1999/04/22}{Set \cs{lefthyphenmin} to \cs{m@ne}
+% \emph{inside} the group; explicitly set the hyphenmin parameters
+% for language 0}
+% \begin{macrocode}
+ \input #2\relax
+% \end{macrocode}
+% Now we globally store the settings of |\lefthyphenmin| and
+% |\righthyphenmin| and close the group.
+% \changes{babel~3.7c}{1999/04/25}{Only set hyphenmin values when the
+% pattern file changed them}
+% \begin{macrocode}
+ \ifnum\lefthyphenmin=\m@ne
+ \else
+ \expandafter\xdef\csname #1hyphenmins\endcsname{%
+ \the\lefthyphenmin\the\righthyphenmin}%
+ \fi
+ \endgroup
+% \end{macrocode}
+% If the counter |\language| is still equal to zero we set the
+% hyphenmin parameters to the values for the language loaded on
+% pattern register 0.
+% \begin{macrocode}
+ \ifnum\the\language=\z@
+ \expandafter\ifx\csname #1hyphenmins\endcsname\relax
+ \set@hyphenmins\tw@\thr@@\relax
+ \else
+ \expandafter\expandafter\expandafter\set@hyphenmins
+ \csname #1hyphenmins\endcsname
+ \fi
+% \end{macrocode}
+% Now execute the contents of token register zero as it may
+% contain commands which set the hyphenmin parameters for synonyms
+% that were defined before the first pattern file is read in.
+% \changes{babel~3.7c}{1999/04/27}{Added the execution of the contents
+% of \cs{toks@}}
+% \begin{macrocode}
+ \the\toks@
+ \fi
+% \end{macrocode}
+% Empty the token register after use.
+% \begin{macrocode}
+ \toks@{}%
+% \end{macrocode}
+% When the hyphenation patterns have been processed we need to see
+% if a file with hyphenation exceptions needs to be read. This is
+% the case when the third argument is not empty and when it does
+% not contain a space token.
+% \changes{babel~3.5b}{1995/04/28}{Added optional reading of file with
+% hyphenation exceptions}
+% \changes{babel~3.5f}{1995/07/25}{Use \cs{empty} instead of
+% \cs{@empty} as the latter is unknown in plain}
+% \begin{macrocode}
+ \def\bbl@tempa{#3}%
+ \ifx\bbl@tempa\@empty
+ \else
+ \ifx\bbl@tempa\space
+ \else
+ \input #3\relax
+ \fi
+ \fi
+ }
+% \end{macrocode}
+%
+% \begin{macro}{\bbl@get@enc}
+% \changes{babel~3.7f}{2000/02/18}{Added macro}
+% \begin{macro}{\bbl@hyph@enc}
+% The macro |\bbl@get@enc| extracts the font encoding from the
+% language name and stores it in |\bbl@hyph@enc|. It uses delimited
+% arguments to achieve this.
+% \begin{macrocode}
+\def\bbl@get@enc#1:#2\@@@{%
+% \end{macrocode}
+% First store both arguments in temporary macros,
+% \begin{macrocode}
+ \def\bbl@tempa{#1}%
+ \def\bbl@tempb{#2}%
+% \end{macrocode}
+% then, if the second argument was empty, no font encoding was
+% specified and we're done.
+% \begin{macrocode}
+ \ifx\bbl@tempb\@empty
+ \let\bbl@hyph@enc\@empty
+ \else
+% \end{macrocode}
+% But if the second argument was \emph{not} empty it will now have
+% a superfluous colon attached to it which we need to remove. This
+% done by feeding it to |\bbl@get@enc|. The string that we are
+% after will then be in the first argument and be stored in
+% |\bbl@tempa|.
+% \begin{macrocode}
+ \bbl@get@enc#2\@@@
+ \edef\bbl@hyph@enc{\bbl@tempa}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\readconfigfile}
+% The configuration file can now be opened for reading.
+% \begin{macrocode}
+\openin1 = language.dat
+% \end{macrocode}
+%
+% See if the file exists, if not, use the default hyphenation file
+% \file{hyphen.tex}. The user will be informed about this.
+%
+% \begin{macrocode}
+\ifeof1
+ \message{I couldn't find the file language.dat,\space
+ I will try the file hyphen.tex}
+ \input hyphen.tex\relax
+\else
+% \end{macrocode}
+%
+% Pattern registers are allocated using count register
+% |\last@language|. Its initial value is~0. The definition of the
+% macro |\newlanguage| is such that it first increments the count
+% register and then defines the language. In order to have the
+% first patterns loaded in pattern register number~0 we initialize
+% |\last@language| with the value~$-1$.
+%
+% \changes{babel~3.1}{1991/05/21}{Removed use of \cs{toks0}}
+% \begin{macrocode}
+ \last@language\m@ne
+% \end{macrocode}
+%
+% We now read lines from the file until the end is found
+%
+% \begin{macrocode}
+ \loop
+% \end{macrocode}
+%
+% While reading from the input, it is useful to switch off
+% recognition of the end-of-line character. This saves us stripping
+% off spaces from the contents of the control sequence.
+%
+% \begin{macrocode}
+ \endlinechar\m@ne
+ \read1 to \bbl@line
+ \endlinechar`\^^M
+% \end{macrocode}
+%
+% Empty lines are skipped.
+% \begin{macrocode}
+ \ifx\bbl@line\@empty
+ \else
+% \end{macrocode}
+%
+% Now we add a space and a |/| character to the end of
+% |\bbl@line|. This is needed to be able to recognize the third,
+% optional, argument of |\process@language| later on.
+% \changes{babel~3.5b}{1995/04/28}{Now add a \cs{space} and a /
+% character}
+% \begin{macrocode}
+ \edef\bbl@line{\bbl@line\space/}%
+ \expandafter\process@line\bbl@line
+ \fi
+% \end{macrocode}
+%
+% Check for the end of the file. To avoid a new \texttt{if}
+% control sequence we create the necessary |\iftrue| or |\iffalse|
+% with the help of |\csname|. But there is one complication with
+% this approach: when skipping the \texttt{loop...repeat} \TeX\ has
+% to read |\if|/|\fi| pairs. So we have to insert a `dummy'
+% |\iftrue|.
+% \changes{babel~3.1}{1991/10/31}{Removed the extra \texttt{if}
+% control sequence}
+% \begin{macrocode}
+ \iftrue \csname fi\endcsname
+ \csname if\ifeof1 false\else true\fi\endcsname
+ \repeat
+% \end{macrocode}
+%
+% Reactivate the default patterns,
+% \begin{macrocode}
+ \language=0
+\fi
+% \end{macrocode}
+% and close the configuration file.
+% \changes{babel~3.2a}{1991/11/20}{Free macro space for
+% \cs{process@language}}
+% \begin{macrocode}
+\closein1
+% \end{macrocode}
+% Also remove some macros from memory
+% \begin{macrocode}
+\let\process@language\@undefined
+\let\process@synonym\@undefined
+\let\process@line\@undefined
+\let\bbl@tempa\@undefined
+\let\bbl@tempb\@undefined
+\let\bbl@eq@\@undefined
+\let\bbl@line\@undefined
+\let\bbl@get@enc\@undefined
+% \end{macrocode}
+%
+% \changes{babel~3.5f}{1995/11/08}{Moved the fiddling with \cs{dump}
+% to \file{bbplain.dtx} as it is no longer needed for \LaTeX}
+% We add a message about the fact that babel is loaded in the
+% format and with which language patterns to the \cs{everyjob}
+% register.
+% \changes{babel~3.6h}{1997/01/23}{Added a couple of \cs{expandafter}s
+% to copy the contents of \cs{toks8} into \cs{everyjob} instead of
+% the reference}
+% \begin{macrocode}
+\ifx\addto@hook\@undefined
+\else
+ \expandafter\addto@hook\expandafter\everyjob\expandafter{%
+ \expandafter\typeout\expandafter{\the\toks8 loaded.}}
+\fi
+% \end{macrocode}
+% Here the code for ini\TeX\ ends.
+% \begin{macrocode}
+%</patterns>
+%</kernel>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Support for active characters}
+%
+% \begin{macro}{\bbl@add@special}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% The macro |\bbl@add@special| is used to add a new character (or
+% single character control sequence) to the macro |\dospecials|
+% (and |\@sanitize| if \LaTeX\ is used).
+%
+% To keep all changes local, we begin a new group. Then we
+% redefine the macros |\do| and |\@makeother| to add themselves and
+% the given character without expansion.
+% \begin{macrocode}
+%<*core|shorthands>
+\def\bbl@add@special#1{\begingroup
+ \def\do{\noexpand\do\noexpand}%
+ \def\@makeother{\noexpand\@makeother\noexpand}%
+% \end{macrocode}
+% To add the character to the macros, we expand the original macros
+% with the additional character inside the redefinition of the
+% macros. Because |\@sanitize| can be undefined, we put the
+% definition inside a conditional.
+% \begin{macrocode}
+ \edef\x{\endgroup
+ \def\noexpand\dospecials{\dospecials\do#1}%
+ \expandafter\ifx\csname @sanitize\endcsname\relax \else
+ \def\noexpand\@sanitize{\@sanitize\@makeother#1}%
+ \fi}%
+% \end{macrocode}
+% The macro |\x| contains at this moment the following:\\
+% |\endgroup\def\dospecials{|\textit{old contents}%
+% |\do|\meta{char}|}|.\\
+% If |\@sanitize| is defined, it contains an additional definition
+% of this macro. The last thing we have to do, is the expansion of
+% |\x|. Then |\endgroup| is executed, which restores the old
+% meaning of |\x|, |\do| and |\@makeother|. After the group is
+% closed, the new definition of |\dospecials| (and |\@sanitize|) is
+% assigned.
+% \begin{macrocode}
+ \x}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@remove@special}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% The companion of the former macro is |\bbl@remove@special|. It
+% is used to remove a character from the set macros |\dospecials|
+% and |\@sanitize|.
+%
+% To keep all changes local, we begin a new group. Then we define
+% a help macro |\x|, which expands to empty if the characters
+% match, otherwise it expands to its nonexpandable input. Because
+% \TeX\ inserts a |\relax|, if the corresponding |\else| or |\fi|
+% is scanned before the comparison is evaluated, we provide a `stop
+% sign' which should expand to nothing.
+% \begin{macrocode}
+\def\bbl@remove@special#1{\begingroup
+ \def\x##1##2{\ifnum`#1=`##2\noexpand\@empty
+ \else\noexpand##1\noexpand##2\fi}%
+% \end{macrocode}
+% With the help of this macro we define |\do| and |\make@other|.
+% \begin{macrocode}
+ \def\do{\x\do}%
+ \def\@makeother{\x\@makeother}%
+% \end{macrocode}
+% The rest of the work is similar to |\bbl@add@special|.
+% \begin{macrocode}
+ \edef\x{\endgroup
+ \def\noexpand\dospecials{\dospecials}%
+ \expandafter\ifx\csname @sanitize\endcsname\relax \else
+ \def\noexpand\@sanitize{\@sanitize}%
+ \fi}%
+ \x}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Shorthands}
+%
+% \begin{macro}{\initiate@active@char}
+% \changes{babel~3.5a}{1995/02/11}{Added macro}
+% \changes{babel~3.5b}{1995/03/03}{Renamed macro}
+% A language definition file can call this macro to make a
+% character active. This macro takes one argument, the character
+% that is to be made active. When the character was already active
+% this macro does nothing. Otherwise, this macro defines the
+% control sequence |\normal@char|\m{char} to expand to the
+% character in its `normal state' and it defines the active
+% character to expand to |\normal@char|\m{char} by default
+% (\m{char} being the character to be made active). Later its
+% definition can be changed to expand to |\active@char|\m{char}
+% by calling |\bbl@activate{|\m{char}|}|.
+%
+% For example, to make the double quote character active one could
+% have the following line in a language definition file:
+% \begin{verbatim}
+% \initiate@active@char{"}
+% \end{verbatim}
+%
+% \begin{macro}{\bbl@afterelse}
+% \begin{macro}{\bbl@afterfi}
+% Because the code that is used in the handling of active
+% characters may need to look ahead, we take extra care to `throw'
+% it over the |\else| and |\fi| parts of an
+% |\if|-statement\footnote{This code is based on code presented in
+% TUGboat vol. 12, no2, June 1991 in ``An expansion Power Lemma''
+% by Sonja Maus.}. These macros will break if another |\if...\fi|
+% statement appears in one of the arguments.
+% \changes{babel~3.6i}{1997/02/20}{Made \cs{bbl@afterelse} and
+% \cs{bbl@afterfi} \cs{long}}
+% \begin{macrocode}
+\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
+\long\def\bbl@afterfi#1\fi{\fi#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{babel~3.7a}{1997/02/23}{Commented out \c{peek@token} and
+% \cs{test@token} as shorthands are made expandable again}
+%
+% \begin{macro}{\peek@token}
+% \changes{babel~3.5f}{1995/12/06}{macro added}
+% \changes{babel~3.6i}{1998/03/10}{Renamed \cs{test@token} to
+% \cs{bbl@test@token} to prevent a clash with Arab\TeX}
+% To prevent error messages when a shorthand, which
+% normally takes an argument, sees a |\par|, or |}|, or similar
+% tokens, we need to be able to `peek' at what is coming up next in
+% the input stream. Depending on the category code of the token
+% that is seen, we need to either continue the code for the active
+% character, or insert the non-active version of that character in
+% the output. The macro |\peek@token| therefore takes two
+% arguments, with which it constructs the control sequence to
+% expand next. It |\let|'s |\bbl@nexta| and |\bbl@nextb| to the two
+% possible macros. This is necessary for |\bbl@test@token| to take
+% the right decision.
+% \begin{macrocode}
+%\def\peek@token#1#2{%
+% \expandafter\let\expandafter\bbl@nexta\csname #1\string#2\endcsname
+% \expandafter\let\expandafter\bbl@nextb
+% \csname system@active\string#2\endcsname
+% \futurelet\bbl@token\bbl@test@token}
+% \end{macrocode}
+%
+% \begin{macro}{\bbl@test@token}
+% \changes{babel~3.5f}{1995/12/06}{macro added}
+% \changes{babel~3.6i}{1998/03/10}{renamed \cs{bbl@token} to
+% \cs{bbl@test@token} to prevent a clash with Arab\TeX}
+% When the result of peeking at the next token has yielded a token
+% with category `letter', `other' or `active' it is safe to proceed
+% with evaluating the code for the shorthand. When a token is found
+% with any other category code proceeding is unsafe and therefor
+% the original shorthand character is inserted in the output. The
+% macro that calls |\bbl@test@token| needs to setup |\bbl@nexta|
+% and |\bbl@nextb| in order to achieve this.
+% \begin{macrocode}
+%\def\bbl@test@token{%
+% \let\bbl@next\bbl@nexta
+% \ifcat\noexpand\bbl@token a%
+% \else
+% \ifcat\noexpand\bbl@token=%
+% \else
+% \ifcat\noexpand\bbl@token\noexpand\bbl@next
+% \else
+% \let\bbl@next\bbl@nextb
+% \fi
+% \fi
+% \fi
+% \bbl@next}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%^^A
+%^^A Tekens met mathcode >"8000 zorgen voor problemen.
+%^^A hier kan op getest worden door ze catcode13 te geven
+%^^A en te vragen of er een undefined macro ontstaat:
+%^^A \ifx#1\undefined{matchcode<"8000}\else get active definition
+%^^A using \let \fi
+%^^A
+% The macro |\initiate@active@char| takes all the necessary actions
+% to make its argument a shorthand character. The real work is
+% performed once for each character.
+% \changes{babel~3.7c}{1999/04/30}{Only execute
+% \cs{initiate@active@char} for each character}
+% \begin{macrocode}
+\def\initiate@active@char#1{%
+ \expandafter\ifx\csname active@char\string##1\endcsname\relax
+ \bbl@afterfi{\@initiate@active@char{#1}}%
+ \fi}
+% \end{macrocode}
+% Note that the definition of |\@initiate@active@char| needs an
+% active character, for this the |~| is used. Some of the changes
+% we need, do not have to become available later on, so we do it
+% inside a group.
+% \begin{macrocode}
+\begingroup
+ \catcode`\~\active
+ \def\x{\endgroup
+ \def\@initiate@active@char##1{%
+% \end{macrocode}
+% If the character is already active we provide the default
+% expansion under this shorthand mechanism.
+% \changes{babel~3.5f}{1996/01/09}{Deal correctly with already active
+% characters, provide top level expansion and define all lower
+% level expansion macros outside of the \cs{else} branch.}
+% \changes{babel~3.5g}{1996/08/13}{Top level expansion of
+% \cs{normal@char char} where char is already active, should be the
+% expansion of the active character, not the active character
+% itself as this causes an endless loop}
+% \changes{babel~3.7d}{1999/08/19}{Make sure the active character
+% doesn't get expanded more then once by the \cs{edef} by adding
+% \cs{expandafter}\cs{strip@prefix}\cs{meaning}}
+% \changes{babel~3.7e}{1999/09/06}{previous change was rubbish; use
+% \cs{let} instead of \cs{edef}}
+% \begin{macrocode}
+ \ifcat\noexpand##1\noexpand~\relax
+ \@ifundefined{normal@char\string##1}{%
+ \expandafter\let\csname normal@char\string##1\endcsname##1%
+ \expandafter\gdef
+ \expandafter##1%
+ \expandafter{%
+ \expandafter\active@prefix\expandafter##1%
+ \csname normal@char\string##1\endcsname}}{}%
+ \else
+% \end{macrocode}
+% Otherwise we write a message in the transcript file,
+% \begin{macrocode}
+ \@activated{##1}%
+% \end{macrocode}
+% and define |\normal@char|\m{char} to expand to the character in
+% its default state.
+% \begin{macrocode}
+ \@namedef{normal@char\string##1}{##1}%
+% \end{macrocode}
+% If we are making the right quote active we need to change
+% |\pr@m@s| as well.
+% \changes{babel~3.5a}{1995/03/10}{Added a check for right quote and
+% adapt \cs{pr@m@s} if necessary}
+% \changes{babel~3.7f}{1999/12/18}{The redefinition needs to take
+% place on level higher, \cs{prim@s} needs to be redefined.}
+% \begin{macrocode}
+ \ifx##1'%
+ \let\prim@s\bbl@prim@s
+% \end{macrocode}
+% Also, make sure that a single |'| in math mode `does the right
+% thing'.
+% \changes{babel~3.7f}{1999/12/18}{Insert a check for math mode in the
+% definition of \cs{normal@char'}}
+% \changes{babel~3.7g}{2000/10/02}{use \cs{textormath} to get rid of
+% the \cs{fi} (PR 3266)}
+% \begin{macrocode}
+ \@namedef{normal@char\string##1}{%
+ \textormath{##1}{^\bgroup\prim@s}}%
+ \fi
+% \end{macrocode}
+% If we are using the caret as a shorthand character special care
+% should be taken to make sure math still works. Therefor an extra
+% level of expansion is introduced with a check for math mode on
+% the upper level.
+% \changes{babel~3.7f}{1999/12/18}{Introduced an extra level of
+% expansion in the definition of an active caret}
+% \begin{macrocode}
+ \ifx##1^%
+ \gdef\bbl@act@caret{%
+ \ifmmode
+ \csname normal@char\string^\endcsname
+ \else
+ \bbl@afterfi
+ {\if@safe@actives
+ \bbl@afterelse\csname normal@char\string##1\endcsname
+ \else
+ \bbl@afterfi\csname user@active\string##1\endcsname
+ \fi}%
+ \fi}
+ \fi
+% \end{macrocode}
+% To prevent problems with the loading of other packages after
+% \babel\ we reset the catcode of the character at the end of the
+% package.
+% \changes{babel~3.5f}{1995/12/01}{Restore the category code of a
+% shorthand char at end of package}
+% \changes{babel~3.6f}{1997/01/14}{Made restoring of the category code
+% of shorthand characters optional}
+% \changes{babel~3.7a}{1997/03/21}{Use \cs{@ifpackagewith} to
+% determine whether shorthand characters need to remain active}
+% \begin{macrocode}
+ \@ifpackagewith{babel}{KeepShorthandsActive}{}{%
+ \edef\bbl@tempa{\catcode`\noexpand##1\the\catcode`##1}%
+ \expandafter\AtEndOfPackage\expandafter{\bbl@tempa}}%
+% \end{macrocode}
+% Now we set the lowercase code of the |~| equal to that of the
+% character to be made active and execute the rest of the code
+% inside a |\lowercase| `environment'.
+% \changes{babel~3.5f}{1996/01/25}{store the \cs{lccode} of the tie
+% before changing it}
+% \begin{macrocode}
+ \@tempcnta=\lccode`\~
+ \lccode`~=`##1%
+ \lowercase{%
+% \end{macrocode}
+% Make the character active and add it to |\dospecials| and
+% |\@sanitize|.
+% \begin{macrocode}
+ \catcode`~\active
+ \expandafter\bbl@add@special
+ \csname \string##1\endcsname
+% \end{macrocode}
+% Also re-activate it again at |\begin{document}|.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \catcode`##1\active
+% \end{macrocode}
+% We also need to make sure that the shorthands are active during
+% the processing of the \file{.aux} file. Otherwise some citations
+% may give unexpected results in the printout when a shorthand was
+% used in the optional argument of |\bibitem| for example.
+% \changes{babel~3.6i}{1997/03/01}{Make shorthands active during
+% \file{.aux} file processing}
+% \begin{macrocode}
+ \if@filesw
+ \immediate\write\@mainaux{%
+ \string\catcode`##1\string\active}%
+ \fi}%
+% \end{macrocode}
+% Define the character to expand to
+% \begin{center}
+% |\active@prefix| \m{char} |\normal@char|\m{char}
+% \end{center}
+% (where |\active@char|\m{char} is \emph{one} control sequence!).
+% \changes{babel~3.5f}{1996/01/25}{restore the \cs{lccode} of the tie}
+% \begin{macrocode}
+ \expandafter\gdef
+ \expandafter~%
+ \expandafter{%
+ \expandafter\active@prefix\expandafter##1%
+ \csname normal@char\string##1\endcsname}}%
+ \lccode`\~\@tempcnta
+ \fi
+% \end{macrocode}
+% For the active caret we first expand to |\bbl@act@caret| in order
+% to be able to handle math mode correctly.
+% \changes{babel~3.7f}{2000/09/25}{Make an exception for the active
+% caret which needs an extra level of expansion}
+% \begin{macrocode}
+ \ifx##1^%
+ \@namedef{active@char\string##1}{\bbl@act@caret}%
+ \else
+% \end{macrocode}
+% We define the first level expansion of |\active@char|\m{char} to
+% check the status of the |@safe@actives| flag. If it is set to
+% true we expand to the `normal' version of this character,
+% otherwise we call |\@active@char|\m{char}.
+% \begin{macrocode}
+ \@namedef{active@char\string##1}{%
+ \if@safe@actives
+ \bbl@afterelse\csname normal@char\string##1\endcsname
+ \else
+ \bbl@afterfi\csname user@active\string##1\endcsname
+ \fi}%
+ \fi
+% \end{macrocode}
+% The next level of the code checks whether a user has defined a
+% shorthand for himself with this character. First we check for a
+% single character shorthand. If that doesn't exist we check for a
+% shorthand with an argument.
+% \changes{babel~3.5d}{1995/07/02}{Skip the user-level active char
+% with argument if no shorthands with arguments were defined}
+% \changes{babel~3.8b}{2004/04/19}{Now use \cs{bbl@sh@select}}
+% \begin{macrocode}
+ \@namedef{user@active\string##1}{%
+ \expandafter\ifx
+ \csname \user@group @sh@\string##1@\endcsname
+ \relax
+ \bbl@afterelse\bbl@sh@select\user@group##1%
+ {user@active@arg\string##1}{language@active\string##1}%
+ \else
+ \bbl@afterfi\csname \user@group @sh@\string##1@\endcsname
+ \fi}%
+% \end{macrocode}
+% When there is also no user-level shorthand with an argument we
+% will check whether there is a language defined shorthand for
+% this active character. Before the next token is absorbed as
+% argument we need to make sure that this is safe. Therefor
+% |\peek@token| is called to decide that.
+% \changes{babel~3.5f}{1995/12/07}{use \cs{peek@token} to check whether
+% it is safe to proceed}
+% \changes{babel~3.6i}{1997/02/20}{Remove the use of \cs{peek@token}
+% again and make the \cs{...active@arg...} commands \cs{long}}
+% \changes{babel~3.7e}{1999/09/24}{pass the argument on with braces in
+% order to prevent it from breaking up}
+% \changes{babel~3.7f}{2000/02/18}{remove the braces again}
+% \begin{macrocode}
+ \long\@namedef{user@active@arg\string##1}####1{%
+ \expandafter\ifx
+ \csname \user@group @sh@\string##1@\string####1@\endcsname
+ \relax
+ \bbl@afterelse
+ \csname language@active\string##1\endcsname####1%
+ \else
+ \bbl@afterfi
+ \csname \user@group @sh@\string##1@\string####1@%
+ \endcsname
+ \fi}%
+% \end{macrocode}
+% In order to do the right thing when a shorthand with an argument
+% is used by itself at the end of the line we provide a definition
+% for the case of an empty argument. For that case we let the
+% shorthand character expand to its non-active self.
+% \begin{macrocode}
+ \@namedef{\user@group @sh@\string##1@@}{%
+ \csname normal@char\string##1\endcsname}
+% \end{macrocode}
+%
+% Like the shorthands that can be defined by the user, a language
+% definition file can also define shorthands with and without an
+% argument, so we need two more macros to check if they exist.
+% \changes{babel~3.5d}{1995/07/02}{Skip the language-level active char
+% with argument if no shorthands with arguments were defined}
+% \changes{babel~3.8b}{2004/04/19}{Now use \cs{bbl@sh@select}}
+% \begin{macrocode}
+ \@namedef{language@active\string##1}{%
+ \expandafter\ifx
+ \csname \language@group @sh@\string##1@\endcsname
+ \relax
+ \bbl@afterelse\bbl@sh@select\language@group##1%
+ {language@active@arg\string##1}{system@active\string##1}%
+ \else
+ \bbl@afterfi
+ \csname \language@group @sh@\string##1@\endcsname
+ \fi}%
+% \end{macrocode}
+% \changes{babel~3.5f}{1995/12/07}{use \cs{peek@token} to check whether
+% it is safe to proceed}
+% \changes{babel~3.6i}{1997/02/20}{Remove the use of \cs{peek@token}
+% again}
+% \changes{babel~3.7e}{1999/09/24}{pass the argument on with braces in
+% order to prevent it from breaking up}
+% \changes{babel~3.7f}{2000/02/18}{remove the braces again}
+% \begin{macrocode}
+ \long\@namedef{language@active@arg\string##1}####1{%
+ \expandafter\ifx
+ \csname \language@group @sh@\string##1@\string####1@\endcsname
+ \relax
+ \bbl@afterelse
+ \csname system@active\string##1\endcsname####1%
+ \else
+ \bbl@afterfi
+ \csname \language@group @sh@\string##1@\string####1@%
+ \endcsname
+ \fi}%
+% \end{macrocode}
+% And the same goes for the system level.
+% \changes{babel~3.8b}{2004/04/19}{Now use \cs{bbl@sh@select}}
+% \begin{macrocode}
+ \@namedef{system@active\string##1}{%
+ \expandafter\ifx
+ \csname \system@group @sh@\string##1@\endcsname
+ \relax
+ \bbl@afterelse\bbl@sh@select\system@group##1%
+ {system@active@arg\string##1}{normal@char\string##1}%
+ \else
+ \bbl@afterfi\csname \system@group @sh@\string##1@\endcsname
+ \fi}%
+% \end{macrocode}
+% When no shorthands were found the `normal' version of the active
+% character is inserted.
+% \changes{babel~3.5f}{1995/12/07}{use \cs{peek@token} to check whether
+% it is safe to proceed}
+% \changes{babel~3.6i}{1997/02/20}{Remove the use of \cs{peek@token}
+% again}
+% \begin{macrocode}
+ \long\@namedef{system@active@arg\string##1}####1{%
+ \expandafter\ifx
+ \csname \system@group @sh@\string##1@\string####1@\endcsname
+ \relax
+ \bbl@afterelse\csname normal@char\string##1\endcsname####1%
+ \else
+ \bbl@afterfi
+ \csname \system@group @sh@\string##1@\string####1@\endcsname
+ \fi}%
+% \end{macrocode}
+% When a shorthand combination such as |''| ends up in a heading
+% \TeX\ would see |\protect'\protect'|. To prevent this from
+% happening a shorthand needs to be defined at user level.
+% \changes{babel~3.7f}{1999/12/09}{Added an extra shorthand
+% combination on user level to catch an interfering \cs{protect}}
+% \begin{macrocode}
+ \@namedef{user@sh@\string##1@\string\protect@}{%
+ \csname user@active\string##1\endcsname}%
+ }%
+ }\x
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@sh@select}
+% This command helps the shorthand supporting macros to select how
+% to proceed. Note that this macro needs to be expandable as do all
+% the shorthand macros in order for them to work in expansion-only
+% environments such as the argument of |\hyphenation|.
+%
+% This macro expects the name of a group of shorthands in its first
+% argument and a shorthand character in its second argument. It
+% will expand to either |\bbl@firstcs| or |\bbl@scndcs|. Hence two
+% more arguments need to follow it.
+% \changes{babel~3.8b}{2004/04/19}{Added command}
+% \begin{macrocode}
+\def\bbl@sh@select#1#2{%
+ \expandafter\ifx\csname#1@sh@\string#2@sel\endcsname\relax
+ \bbl@afterelse\bbl@scndcs
+ \else
+ \bbl@afterfi\csname#1@sh@\string#2@sel\endcsname
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\active@prefix}
+% The command |\active@prefix| which is used in the expansion of
+% active characters has a function similar to |\OT1-cmd| in that it
+% |\protect|s the active character whenever |\protect| is
+% \emph{not} |\@typeset@protect|.
+% \changes{babel~3.5d}{1995/07/02}{\cs{@protected@cmd} has vanished
+% from \file{ltoutenc.dtx}}
+% \changes{babel~3.7o}{2003/11/17}{Added handling of the situation
+% where \cs{protect} is set to \cs{@unexpandable@protect}}
+% \begin{macrocode}
+\def\active@prefix#1{%
+ \ifx\protect\@typeset@protect
+ \else
+% \end{macrocode}
+% When |\protect| is set to |\@unexpandable@protect| we make sure
+% that the active character is als \emph{not} expanded by inserting
+% |\noexpand| in front of it. The |\@gobble| is needed to remove
+% a token such as |\activechar:| (when the double colon was the
+% active character to be dealt with).
+% \begin{macrocode}
+ \ifx\protect\@unexpandable@protect
+ \bbl@afterelse\bbl@afterfi\noexpand#1\@gobble
+ \else
+ \bbl@afterfi\bbl@afterfi\protect#1\@gobble
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@safe@actives}
+% In some circumstances it is necessary to be able to change the
+% expansion of an active character on the fly. For this purpose the
+% switch |@safe@actives| is available. The setting of this switch
+% should be checked in the first level expansion of
+% |\active@char|\m{char}.
+% \begin{macrocode}
+\newif\if@safe@actives
+\@safe@activesfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@restore@actives}
+% \changes{babel~3.7m}{2003/11/15}{New macro added}
+% When the output routine kicks in while the
+% active characters were made ``safe'' this must be undone in
+% the headers to prevent unexpected typeset results. For this
+% situation we define a command to make them ``unsafe'' again.
+% \begin{macrocode}
+\def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@activate}
+% \changes{babel~3.5a}{1995/02/11}{Added macro}
+%
+% This macro takes one argument, like |\initiate@active@char|. The
+% macro is used to change the definition of an active character to
+% expand to |\active@char|\m{char} instead of
+% |\normal@char|\m{char}.
+% \begin{macrocode}
+\def\bbl@activate#1{%
+ \expandafter\def
+ \expandafter#1\expandafter{%
+ \expandafter\active@prefix
+ \expandafter#1\csname active@char\string#1\endcsname}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@deactivate}
+% \changes{babel~3.5a}{1995/02/11}{Added macro}
+% This macro takes one argument, like |\bbl@activate|. The macro
+% doesn't really make a character non-active; it changes its
+% definition to expand to |\normal@char|\m{char}.
+% \begin{macrocode}
+\def\bbl@deactivate#1{%
+ \expandafter\def
+ \expandafter#1\expandafter{%
+ \expandafter\active@prefix
+ \expandafter#1\csname normal@char\string#1\endcsname}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@firstcs}
+% \begin{macro}{\bbl@scndcs}
+% These macros have two arguments. They use one of their arguments
+% to build a control sequence from.
+% \begin{macrocode}
+\def\bbl@firstcs#1#2{\csname#1\endcsname}
+\def\bbl@scndcs#1#2{\csname#2\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\declare@shorthand}
+% The command |\declare@shorthand| is used to declare a shorthand
+% on a certain level. It takes three arguments:
+% \begin{enumerate}
+% \item a name for the collection of shorthands, i.e. `system', or
+% `dutch';
+% \item the character (sequence) that makes up the shorthand,
+% i.e. |~| or |"a|;
+% \item the code to be executed when the shorthand is encountered.
+% \end{enumerate}
+% \changes{babel~3.5d}{1995/07/02}{Make a `note' when a shorthand with
+% an argument is defined.}
+% \changes{babel~3.6i}{1997/02/23}{Make it possible to distinguish the
+% constructed control sequences for the case with argument}
+% \changes{babel~3.8b}{2004/04/19}{We need to support shorthands with
+% and without argument in different groups; added the name of the
+% group to the storage macro}
+% \begin{macrocode}
+\def\declare@shorthand#1#2{\@decl@short{#1}#2\@nil}
+\def\@decl@short#1#2#3\@nil#4{%
+ \def\bbl@tempa{#3}%
+ \ifx\bbl@tempa\@empty
+ \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@scndcs
+ \@namedef{#1@sh@\string#2@}{#4}%
+ \else
+ \expandafter\let\csname #1@sh@\string#2@sel\endcsname\bbl@firstcs
+ \@namedef{#1@sh@\string#2@\string#3@}{#4}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textormath}
+% Some of the shorthands that will be declared by the language
+% definition files have to be usable in both text and mathmode. To
+% achieve this the helper macro |\textormath| is provided.
+% \begin{macrocode}
+\def\textormath#1#2{%
+ \ifmmode
+ \bbl@afterelse#2%
+ \else
+ \bbl@afterfi#1%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\user@group}
+% \begin{macro}{\language@group}
+% \begin{macro}{\system@group}
+% The current concept of `shorthands' supports three levels or
+% groups of shorthands. For each level the name of the level or
+% group is stored in a macro. The default is to have a user group;
+% use language group `english' and have a system group called
+% `system'.
+% \changes{babel~3.6i}{1997/02/24}{Have a user group called `user' by
+% default}
+% \begin{macrocode}
+\def\user@group{user}
+\def\language@group{english}
+\def\system@group{system}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\useshorthands}
+% This is the user level command to tell \LaTeX\ that user level
+% shorthands will be used in the document. It takes one argument,
+% the character that starts a shorthand.
+% \changes{babel~3.7j}{2001/11/11}{When \TeX\ has seen a character
+% its category code is fixed; need to use a `stand-in' for the
+% call of \cs{bbl@activate}}
+% \begin{macrocode}
+\def\useshorthands#1{%
+% \end{macrocode}
+% First note that this is user level.
+% \begin{macrocode}
+ \def\user@group{user}%
+% \end{macrocode}
+% Then initialize the character for use as a shorthand character.
+% \begin{macrocode}
+ \initiate@active@char{#1}%
+% \end{macrocode}
+% Now that \TeX\ has seen the character its category code is
+% fixed, but for the actions of |\bbl@activate| to succeed we need
+% it to be active. Hence the trick with the |\lccode| to circumvent
+% this.
+% \changes{babel~3.7j}{2003/09/11}{The change from 11/112001 was
+% incomplete}
+% \begin{macrocode}
+ \@tempcnta\lccode`\~
+ \lccode`~=`#1%
+ \lowercase{\catcode`~\active\bbl@activate{~}}%
+ \lccode`\~\@tempcnta}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\defineshorthand}
+% Currently we only support one group of user level shorthands,
+% called `user'.
+% \begin{macrocode}
+\def\defineshorthand{\declare@shorthand{user}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\languageshorthands}
+% A user level command to change the language from which shorthands
+% are used.
+% \begin{macrocode}
+\def\languageshorthands#1{\def\language@group{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\aliasshorthand}
+% \changes{babel~3.5f}{1996/01/25}{New command}
+% \begin{macrocode}
+\def\aliasshorthand#1#2{%
+% \end{macrocode}
+% First the new shorthand needs to be initialized,
+% \begin{macrocode}
+ \expandafter\ifx\csname active@char\string#2\endcsname\relax
+ \ifx\document\@notprerr
+ \@notshorthand{#2}
+ \else
+ \initiate@active@char{#2}%
+% \end{macrocode}
+% Then we need to use the |\lccode| trick to make the new shorthand
+% behave like the old one. Therefore we save the current |\lccode|
+% of the |~|-character and restore it later. Then we |\let| the new
+% shorthand character be equal to the original.
+% \begin{macrocode}
+ \@tempcnta\lccode`\~
+ \lccode`~=`#2%
+ \lowercase{\let~#1}%
+ \lccode`\~\@tempcnta
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@notshorthand}
+% \changes{v3.8d}{2004/11/20}{Error message added}
+%
+% \begin{macrocode}
+\def\@notshorthand#1{%
+ \PackageError{babel}{%
+ The character `\string #1´ should be made
+ a shorthand character;\MessageBreak
+ add the command \string\useshorthands\string{#1\string} to
+ the preamble.\MessageBreak
+ I will ignore your instruction}{}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\shorthandon}
+% \changes{babel~3.7a}{1998/06/07}{Added command}
+% \begin{macro}{\shorthandoff}
+% \changes{babel~3.7a}{1998/06/07}{Added command}
+% The first level definition of these macros just passes the
+% argument on to |\bbl@switch@sh|, adding |\@nil| at the end to
+% denote the end of the list of characters.
+% \begin{macrocode}
+\newcommand*\shorthandon[1]{\bbl@switch@sh{on}#1\@nil}
+\newcommand*\shorthandoff[1]{\bbl@switch@sh{off}#1\@nil}
+% \end{macrocode}
+%
+% \begin{macro}{\bbl@switch@sh}
+% \changes{babel~3.7a}{1998/06/07}{Added command}
+% The macro |\bbl@switch@sh| takes the list of characters apart one
+% by one and subsequently switches the category code of the
+% shorthand character according to the first argument of
+% |\bbl@switch@sh|.
+% \begin{macrocode}
+\def\bbl@switch@sh#1#2#3\@nil{%
+% \end{macrocode}
+% But before any of this switching takes place we make sure that
+% the character we are dealing with is known as a shorthand
+% character. If it is, a macro such as |\active@char"| should
+% exist.
+% \begin{macrocode}
+ \@ifundefined{active@char\string#2}{%
+ \PackageError{babel}{%
+ The character '\string #2' is not a shorthand character
+ in \languagename}{%
+ Maybe you made a typing mistake?\MessageBreak
+ I will ignore your instruction}}{%
+ \csname bbl@switch@sh@#1\endcsname#2}%
+% \end{macrocode}
+% Now that, as the first character in the list has been taken care
+% of, we pass the rest of the list back to |\bbl@switch@sh|.
+% \begin{macrocode}
+ \ifx#3\@empty\else
+ \bbl@afterfi\bbl@switch@sh{#1}#3\@nil
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@switch@sh@off}
+% All that is left to do is define the actual switching
+% macros. Switching off is easy, we just set the category code to
+% `other' (12).
+% \begin{macrocode}
+\def\bbl@switch@sh@off#1{\catcode`#112\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@switch@sh@on}
+% But switching the shorthand character back on is a bit more
+% tricky. It involves making sure that we have an active character
+% to begin with when the macro is being defined. It also needs the
+% use of |\lowercase| and |\lccode| trickery to get everything to
+% work out as expected. And to keep things local that need to
+% remain local a group is opened, which is closed as soon as |\x|
+% gets executed.
+% \begin{macrocode}
+\begingroup
+ \catcode`\~\active
+ \def\x{\endgroup
+ \def\bbl@switch@sh@on##1{%
+ \lccode`~=`##1%
+ \lowercase{%
+ \catcode`~\active
+ }%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+% The next operation makes the above definition effective.
+% \begin{macrocode}
+\x
+%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% To prevent problems with constructs such as |\char"01A| when the
+% double quote is made active, we define a shorthand on
+% system level.
+% \changes{babel~3.5a}{1995/03/10}{Replaced 16 system shorthands to
+% deal with hex numbers by one}
+% \begin{macrocode}
+\declare@shorthand{system}{"}{\csname normal@char\string"\endcsname}
+% \end{macrocode}
+%
+% When the right quote is made active we need to take care of
+% handling it correctly in mathmode. Therefore we define a
+% shorthand at system level to make it expand to a non-active right
+% quote in textmode, but expand to its original definition in
+% mathmode. (Note that the right quote is `active' in mathmode
+% because of its mathcode.)
+% \changes{babel~3.5a}{1995/03/10}{Added a system shorthand for the
+% right quote}
+% \begin{macrocode}
+\declare@shorthand{system}{'}{%
+ \textormath{\csname normal@char\string'\endcsname}%
+ {\sp\bgroup\prim@s}}
+% \end{macrocode}
+%
+% When the left quote is made active we need to take care of
+% handling it correctly when it is followed by for instance an open
+% brace token. Therefore we define a shorthand at system level to
+% make it expand to a non-active left quote.
+% \changes{babel~3.5f}{1996/03/06}{Added a system shorthand for the
+% left quote}
+% \begin{macrocode}
+\declare@shorthand{system}{`}{\csname normal@char\string`\endcsname}
+% \end{macrocode}
+%
+% \begin{macro}{\bbl@prim@s}
+% \changes{babel~3.7f}{1999/12/01}{Need to redefine \cs{prim@s} as
+% well as plain \TeX's definition uses \cs{next}}
+% \begin{macro}{\bbl@pr@m@s}
+% \changes{babel~3.5a}{1995/03/10}{Added macro}
+% One of the internal macros that are involved in substituting
+% |\prime| for each right quote in mathmode is |\prim@s|. This
+% checks if the next character is a right quote. When the right
+% quote is active, the definition of this macro needs to be adapted
+% to look for an active right quote.
+% \begin{macrocode}
+\def\bbl@prim@s{%
+ \prime\futurelet\@let@token\bbl@pr@m@s}
+\begingroup
+ \catcode`\'\active\let'\relax
+ \def\x{\endgroup
+ \def\bbl@pr@m@s{%
+ \ifx'\@let@token
+ \expandafter\pr@@@s
+ \else
+ \ifx^\@let@token
+ \expandafter\expandafter\expandafter\pr@@@t
+ \else
+ \egroup
+ \fi
+ \fi}%
+ }
+\x
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</core|shorthands>
+% \end{macrocode}
+%
+% Normally the |~| is active and expands to \verb*=\penalty\@M\ =.
+% When it is written to the \file{.aux} file it is written
+% expanded. To prevent that and to be able to use the character |~|
+% as a start character for a shorthand, it is redefined here as a
+% one character shorthand on system level.
+% \changes{babel~3.5f}{1996/04/02}{No need to reset the category code
+% of the tilde as \cs{initiate@active@char} now correctly deals
+% with active characters}
+% \begin{macrocode}
+%<*core>
+\initiate@active@char{~}
+\declare@shorthand{system}{~}{\leavevmode\nobreak\ }
+\bbl@activate{~}
+% \end{macrocode}
+%
+% \begin{macro}{\OT1dqpos}
+% \begin{macro}{\T1dqpos}
+% The position of the double quote character is different for the
+% OT1 and T1 encodings. It will later be selected using the
+% |\f@encoding| macro. Therefor we define two macros here to store
+% the position of the character in these encodings.
+% \begin{macrocode}
+\expandafter\def\csname OT1dqpos\endcsname{127}
+\expandafter\def\csname T1dqpos\endcsname{4}
+% \end{macrocode}
+% When the macro |\f@encoding| is undefined (as it is in plain
+% \TeX) we define it here to expand to \texttt{OT1}
+% \begin{macrocode}
+\ifx\f@encoding\@undefined
+ \def\f@encoding{OT1}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Language attributes}
+%
+% Language attributes provide a means to give the user control over
+% which features of the language definition files he wants to
+% enable.
+% \changes{babel~3.7c}{1998/07/02}{Added support for language
+% attributes}
+% \begin{macro}{\languageattribute}
+% The macro |\languageattribute| checks whether its arguments are
+% valid and then activates the selected language attribute.
+% \begin{macrocode}
+\newcommand\languageattribute[2]{%
+% \end{macrocode}
+% First check whether the language is known.
+% \begin{macrocode}
+ \expandafter\ifx\csname l@#1\endcsname\relax
+ \@nolanerr{#1}%
+ \else
+% \end{macrocode}
+% Than process each attribute in the list.
+% \begin{macrocode}
+ \@for\bbl@attr:=#2\do{%
+% \end{macrocode}
+% We want to make sure that each attribute is selected only once;
+% therefor we store the already selected attributes in
+% |\bbl@known@attribs|. When that control sequence is not yet
+% defined this attribute is certainly not selected before.
+% \begin{macrocode}
+ \ifx\bbl@known@attribs\@undefined
+ \in@false
+ \else
+% \end{macrocode}
+% Now we need to see if the attribute occurs in the list of
+% already selected attributes.
+% \begin{macrocode}
+ \edef\bbl@tempa{\noexpand\in@{,#1-\bbl@attr,}%
+ {,\bbl@known@attribs,}}%
+ \bbl@tempa
+ \fi
+% \end{macrocode}
+% When the attribute was in the list we issue a warning; this might
+% not be the users intention.
+% \begin{macrocode}
+ \ifin@
+ \PackageWarning{Babel}{%
+ You have more than once selected the attribute
+ '\bbl@attr'\MessageBreak for language #1}%
+ \else
+% \end{macrocode}
+% When we end up here the attribute is not selected before. So, we
+% add it to the list of selected attributes and execute the
+% associated \TeX-code.
+% \begin{macrocode}
+ \edef\bbl@tempa{%
+ \noexpand\bbl@add@list\noexpand\bbl@known@attribs{#1-\bbl@attr}}%
+ \bbl@tempa
+ \edef\bbl@tempa{#1-\bbl@attr}%
+ \expandafter\bbl@ifknown@ttrib\expandafter{\bbl@tempa}\bbl@attributes%
+ {\csname#1@attr@\bbl@attr\endcsname}%
+ {\@attrerr{#1}{\bbl@attr}}%
+ \fi
+ }
+ \fi}
+% \end{macrocode}
+% This command should only be used in the preamble of a document.
+% \begin{macrocode}
+\@onlypreamble\languageattribute
+% \end{macrocode}
+% The error text to be issued when an unknown attribute is
+% selected.
+% \begin{macrocode}
+ \newcommand*{\@attrerr}[2]{%
+ \PackageError{babel}%
+ {The attribute #2 is unknown for language #1.}%
+ {Your command will be ignored, type <return> to proceed}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@declare@ttribute}
+% This command adds the new language/attribute combination to the
+% list of known attributes.
+% \begin{macrocode}
+\def\bbl@declare@ttribute#1#2#3{%
+ \bbl@add@list\bbl@attributes{#1-#2}%
+% \end{macrocode}
+% Then it defines a control sequence to be executed when the
+% attribute is used in a document. The result of this should be
+% that the macro |\extras...| for the current language is extended,
+% otherwise the attribute will not work as its code is removed from
+% memory at |\begin{document}|.
+% \begin{macrocode}
+ \expandafter\def\csname#1@attr@#2\endcsname{#3}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@ifattributeset}
+% \changes{babel~3.7f}{2000/02/12}{macro added}
+% This internal macro has 4 arguments. It can be used to interpret
+% \TeX\ code based on whether a certain attribute was set. This
+% command should appear inside the argument to |\AtBeginDocument|
+% because the attributes are set in the document preamble,
+% \emph{after} \babel\ is loaded.
+%
+% The first argument is the language, the second argument the
+% attribute being checked, and the third and fourth arguments are
+% the true and false clauses.
+% \begin{macrocode}
+\def\bbl@ifattributeset#1#2#3#4{%
+% \end{macrocode}
+% First we need to find out if any attributes were set; if not
+% we're done.
+% \begin{macrocode}
+ \ifx\bbl@known@attribs\@undefined
+ \in@false
+ \else
+% \end{macrocode}
+% The we need to check the list of known attributes.
+% \begin{macrocode}
+ \edef\bbl@tempa{\noexpand\in@{,#1-#2,}%
+ {,\bbl@known@attribs,}}%
+ \bbl@tempa
+ \fi
+% \end{macrocode}
+% When we're this far |\ifin@| has a value indicating if the
+% attribute in question was set or not. Just to be safe the code to
+% be executed is `thrown over the |\fi|'.
+% \begin{macrocode}
+ \ifin@
+ \bbl@afterelse#3%
+ \else
+ \bbl@afterfi#4%
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@add@list}
+% This internal macro adds its second argument to a comma
+% separated list in its first argument. When the list is not
+% defined yet (or empty), it will be initiated
+% \begin{macrocode}
+\def\bbl@add@list#1#2{%
+ \ifx#1\@undefined
+ \def#1{#2}%
+ \else
+ \ifx#1\@empty
+ \def#1{#2}%
+ \else
+ \edef#1{#1,#2}%
+ \fi
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@ifknown@ttrib}
+% An internal macro to check whether a given language/attribute is
+% known. The macro takes 4 arguments, the language/attribute, the
+% attribute list, the \TeX-code to be executed when the attribute
+% is known and the \TeX-code to be executed otherwise.
+% \begin{macrocode}
+\def\bbl@ifknown@ttrib#1#2{%
+% \end{macrocode}
+% We first assume the attribute is unknown.
+% \begin{macrocode}
+ \let\bbl@tempa\@secondoftwo
+% \end{macrocode}
+% Then we loop over the list of known attributes, trying to find a
+% match.
+% \begin{macrocode}
+ \@for\bbl@tempb:=#2\do{%
+ \expandafter\in@\expandafter{\expandafter,\bbl@tempb,}{,#1,}%
+ \ifin@
+% \end{macrocode}
+% When a match is found the definition of |\bbl@tempa| is changed.
+% \begin{macrocode}
+ \let\bbl@tempa\@firstoftwo
+ \else
+ \fi}%
+% \end{macrocode}
+% Finally we execute |\bbl@tempa|.
+% \begin{macrocode}
+ \bbl@tempa
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@clear@ttribs}
+% This macro removes all the attribute code from \LaTeX's memory at
+% |\begin{document}| time (if any is present).
+% \changes{babel~3.7e}{1999/09/24}{When \cs{bbl@attributes} is
+% undefined this should be a no-op}
+% \begin{macrocode}
+\def\bbl@clear@ttribs{%
+ \ifx\bbl@attributes\@undefined\else
+ \@for\bbl@tempa:=\bbl@attributes\do{%
+ \expandafter\bbl@clear@ttrib\bbl@tempa.
+ }%
+ \let\bbl@attributes\@undefined
+ \fi
+ }
+\def\bbl@clear@ttrib#1-#2.{%
+ \expandafter\let\csname#1@attr@#2\endcsname\@undefined}
+\AtBeginDocument{\bbl@clear@ttribs}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Support for saving macro definitions}
+%
+% To save the meaning of control sequences using |\babel@save|, we
+% use temporary control sequences. To save hash table entries for
+% these control sequences, we don't use the name of the control
+% sequence to be saved to construct the temporary name. Instead we
+% simply use the value of a counter, which is reset to zero each
+% time we begin to save new values. This works well because we
+% release the saved meanings before we begin to save a new set of
+% control sequence meanings (see |\selectlanguage| and
+% |\originalTeX|).
+%
+% \begin{macro}{\babel@savecnt}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% \begin{macro}{\babel@beginsave}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% The initialization of a new save cycle: reset the counter to
+% zero.
+% \begin{macrocode}
+\def\babel@beginsave{\babel@savecnt\z@}
+% \end{macrocode}
+% Before it's forgotten, allocate the counter and initialize all.
+% \begin{macrocode}
+\newcount\babel@savecnt
+\babel@beginsave
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\babel@save}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% The macro |\babel@save|\meta{csname} saves the current meaning of
+% the control sequence \meta{csname} to
+% |\originalTeX|\footnote{\cs{originalTeX} has to be
+% expandable, i.\,e.\ you shouldn't let it to \cs{relax}.}.
+% To do this, we let the current meaning to a temporary control
+% sequence, the restore commands are appended to |\originalTeX| and
+% the counter is incremented.
+% \changes{babel~3.2c}{1992/03/17}{missing backslash led to errors
+% when executing \cs{originalTeX}}
+% \changes{babel~3.2d}{1992/07/02}{saving in \cs{babel@i} and
+% restoring from \cs{@babel@i} doesn't work very well...}
+% \begin{macrocode}
+\def\babel@save#1{%
+ \expandafter\let\csname babel@\number\babel@savecnt\endcsname #1\relax
+ \begingroup
+ \toks@\expandafter{\originalTeX \let#1=}%
+ \edef\x{\endgroup
+ \def\noexpand\originalTeX{\the\toks@ \expandafter\noexpand
+ \csname babel@\number\babel@savecnt\endcsname\relax}}%
+ \x
+ \advance\babel@savecnt\@ne}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\babel@savevariable}
+% \changes{babel~3.2}{1991/11/10}{Added macro}
+% The macro |\babel@savevariable|\meta{variable} saves the value of
+% the variable. \meta{variable} can be anything allowed after the
+% |\the| primitive.
+% \begin{macrocode}
+\def\babel@savevariable#1{\begingroup
+ \toks@\expandafter{\originalTeX #1=}%
+ \edef\x{\endgroup
+ \def\noexpand\originalTeX{\the\toks@ \the#1\relax}}%
+ \x}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@frenchspacing}
+% \begin{macro}{\bbl@nonfrenchspacing}
+% Some languages need to have |\frenchspacing| in effect. Others
+% don't want that. The command |\bbl@frenchspacing| switches it on
+% when it isn't already in effect and |\bbl@nonfrenchspacing|
+% switches it off if necessary.
+% \begin{macrocode}
+\def\bbl@frenchspacing{%
+ \ifnum\the\sfcode`\.=\@m
+ \let\bbl@nonfrenchspacing\relax
+ \else
+ \frenchspacing
+ \let\bbl@nonfrenchspacing\nonfrenchspacing
+ \fi}
+\let\bbl@nonfrenchspacing\nonfrenchspacing
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Support for extending macros}
+%
+% \begin{macro}{\addto}
+% For each language four control sequences have to be defined that
+% control the language-specific definitions. To be able to add
+% something to these macro once they have been defined the macro
+% |\addto| is introduced. It takes two arguments, a \meta{control
+% sequence} and \TeX-code to be added to the \meta{control
+% sequence}.
+%
+% If the \meta{control sequence} has not been defined before it is
+% defined now.
+% \changes{babel~3.1}{1991/11/05}{Added macro}
+% \changes{babel~3.4}{1994/02/04}{Changed to use toks register}
+% \changes{babel~3.6b}{1996/12/30}{Also check if control sequence
+% expands to \cs{relax}}
+% \begin{macrocode}
+\def\addto#1#2{%
+ \ifx#1\@undefined
+ \def#1{#2}%
+ \else
+% \end{macrocode}
+% The control sequence could also expand to |\relax|, in which case
+% a circular definition results. The net result is a stack overflow.
+% \begin{macrocode}
+ \ifx#1\relax
+ \def#1{#2}%
+ \else
+% \end{macrocode}
+% Otherwise the replacement text for the \meta{control sequence} is
+% expanded and stored in a token register, together with the
+% \TeX-code to be added. Finally the \meta{control sequence} is
+% \emph{re}defined, using the contents of the token register.
+% \begin{macrocode}
+ {\toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Macros common to a number of languages}
+%
+% \begin{macro}{\allowhyphens}
+% \changes{babel~3.2b}{1992/02/16}{Moved macro from language
+% definition files}
+% \changes{babel~3.7a}{1998/03/12}{Make \cs{allowhyphens} a no-op for
+% T1 fontencoding}
+% This macro makes hyphenation possible. Basically its definition
+% is nothing more than |\nobreak| |\hskip| \texttt{0pt plus
+% 0pt}\footnote{\TeX\ begins and ends a word for hyphenation at a
+% glue node. The penalty prevents a linebreak at this glue node.}.
+% \begin{macrocode}
+\def\bbl@t@one{T1}
+\def\allowhyphens{%
+ \ifx\cf@encoding\bbl@t@one\else\bbl@allowhyphens\fi}
+\def\bbl@allowhyphens{\nobreak\hskip\z@skip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\set@low@box}
+% \changes{babel~3.2b}{1992/02/16}{Moved macro from language
+% definition files}
+% The following macro is used to lower quotes to the same level as
+% the comma. It prepares its argument in box register~0.
+% \begin{macrocode}
+\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}%
+ \dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@%
+ \setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\save@sf@q}
+% \changes{babel~3.2b}{1992/02/16}{Moved macro from language
+% definition files}
+% The macro |\save@sf@q| is used to save and reset the current
+% space factor.
+% \changes{babel~3.7f}{2000/09/19}{PR3119, don't start a paragraph in
+% a local group}
+% \begin{macrocode}
+\def\save@sf@q #1{\leavevmode
+ \begingroup
+ \edef\@SF{\spacefactor \the\spacefactor}#1\@SF
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@disc}
+% \changes{babel~3.5f}{1996/01/24}{Macro moved from language
+% definition files}
+% For some languages the macro |\bbl@disc| is used to ease the
+% insertion of discretionaries for letters that behave `abnormally'
+% at a breakpoint.
+% \begin{macrocode}
+\def\bbl@disc#1#2{%
+ \nobreak\discretionary{#2-}{}{#1}\allowhyphens}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{babel~3.5c}{1995/06/14}{Repaired a typo (itlaic, PR1652)}
+%
+% \subsection{Making glyphs available}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion, and was last revised on
+% \filedate.} makes a number of glyphs available that either do not
+% exist in the \texttt{OT1} encoding and have to be `faked', or
+% that are not accessible through \file{T1enc.def}.
+%
+% \subsection{Quotation marks}
+%
+% \begin{macro}{\quotedblbase}
+% In the \texttt{T1} encoding the opening double quote at the
+% baseline is available as a separate character, accessible via
+% |\quotedblbase|. In the \texttt{OT1} encoding it is not
+% available, therefor we make it available by lowering the normal
+% open quote character to the baseline.
+% \begin{macrocode}
+\ProvideTextCommand{\quotedblbase}{OT1}{%
+ \save@sf@q{\set@low@box{\textquotedblright\/}%
+ \box\z@\kern-.04em\allowhyphens}}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used this glyph can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\quotedblbase}{%
+ \UseTextSymbol{OT1}{\quotedblbase}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\quotesinglbase}
+% We also need the single quote character at the baseline.
+% \begin{macrocode}
+\ProvideTextCommand{\quotesinglbase}{OT1}{%
+ \save@sf@q{\set@low@box{\textquoteright\/}%
+ \box\z@\kern-.04em\allowhyphens}}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used this glyph can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\quotesinglbase}{%
+ \UseTextSymbol{OT1}{\quotesinglbase}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\guillemotleft}
+% \begin{macro}{\guillemotright}
+% The guillemet characters are not available in \texttt{OT1}
+% encoding. They are faked.
+% \begin{macrocode}
+\ProvideTextCommand{\guillemotleft}{OT1}{%
+ \ifmmode
+ \ll
+ \else
+ \save@sf@q{\nobreak
+ \raise.2ex\hbox{$\scriptscriptstyle\ll$}\allowhyphens}%
+ \fi}
+\ProvideTextCommand{\guillemotright}{OT1}{%
+ \ifmmode
+ \gg
+ \else
+ \save@sf@q{\nobreak
+ \raise.2ex\hbox{$\scriptscriptstyle\gg$}\allowhyphens}%
+ \fi}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\guillemotleft}{%
+ \UseTextSymbol{OT1}{\guillemotleft}}
+\ProvideTextCommandDefault{\guillemotright}{%
+ \UseTextSymbol{OT1}{\guillemotright}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\guilsinglleft}
+% \begin{macro}{\guilsinglright}
+% The single guillemets are not available in \texttt{OT1}
+% encoding. They are faked.
+% \begin{macrocode}
+\ProvideTextCommand{\guilsinglleft}{OT1}{%
+ \ifmmode
+ <%
+ \else
+ \save@sf@q{\nobreak
+ \raise.2ex\hbox{$\scriptscriptstyle<$}\allowhyphens}%
+ \fi}
+\ProvideTextCommand{\guilsinglright}{OT1}{%
+ \ifmmode
+ >%
+ \else
+ \save@sf@q{\nobreak
+ \raise.2ex\hbox{$\scriptscriptstyle>$}\allowhyphens}%
+ \fi}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\guilsinglleft}{%
+ \UseTextSymbol{OT1}{\guilsinglleft}}
+\ProvideTextCommandDefault{\guilsinglright}{%
+ \UseTextSymbol{OT1}{\guilsinglright}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Letters}
+%
+% \begin{macro}{\ij}
+% \begin{macro}{\IJ}
+% The dutch language uses the letter `ij'. It is available in
+% \texttt{T1} encoded fonts, but not in the \texttt{OT1} encoded
+% fonts. Therefor we fake it for the \texttt{OT1} encoding.
+% \changes{dutch-3.7a}{1995/02/04}{Changed the kerning in the faked ij
+% to match the dc-version of it}
+% \begin{macrocode}
+\DeclareTextCommand{\ij}{OT1}{%
+ \allowhyphens i\kern-0.02em j\allowhyphens}
+\DeclareTextCommand{\IJ}{OT1}{%
+ \allowhyphens I\kern-0.02em J\allowhyphens}
+\DeclareTextCommand{\ij}{T1}{\char188}
+\DeclareTextCommand{\IJ}{T1}{\char156}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\ij}{%
+ \UseTextSymbol{OT1}{\ij}}
+\ProvideTextCommandDefault{\IJ}{%
+ \UseTextSymbol{OT1}{\IJ}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dj}
+% \begin{macro}{\DJ}
+% The croatian language needs the letters |\dj| and |\DJ|; they are
+% available in the \texttt{T1} encoding, but not in the
+% \texttt{OT1} encoding by default.
+%
+% Some code to construct these glyphs for the \texttt{OT1} encoding
+% was made available to me by Stipcevic Mario,
+% (\texttt{stipcevic@olimp.irb.hr}).
+% \changes{babel~3.5f}{1996/03/28}{New definition of \cs{dj}, see PR
+% 2058}
+% \begin{macrocode}
+\def\crrtic@{\hrule height0.1ex width0.3em}
+\def\crttic@{\hrule height0.1ex width0.33em}
+%
+\def\ddj@{%
+ \setbox0\hbox{d}\dimen@=\ht0
+ \advance\dimen@1ex
+ \dimen@.45\dimen@
+ \dimen@ii\expandafter\rem@pt\the\fontdimen\@ne\font\dimen@
+ \advance\dimen@ii.5ex
+ \leavevmode\rlap{\raise\dimen@\hbox{\kern\dimen@ii\vbox{\crrtic@}}}}
+\def\DDJ@{%
+ \setbox0\hbox{D}\dimen@=.55\ht0
+ \dimen@ii\expandafter\rem@pt\the\fontdimen\@ne\font\dimen@
+ \advance\dimen@ii.15ex % correction for the dash position
+ \advance\dimen@ii-.15\fontdimen7\font % correction for cmtt font
+ \dimen\thr@@\expandafter\rem@pt\the\fontdimen7\font\dimen@
+ \leavevmode\rlap{\raise\dimen@\hbox{\kern\dimen@ii\vbox{\crttic@}}}}
+%
+\DeclareTextCommand{\dj}{OT1}{\ddj@ d}
+\DeclareTextCommand{\DJ}{OT1}{\DDJ@ D}
+% \end{macrocode}
+% Make sure that when an encoding other than \texttt{OT1} or
+% \texttt{T1} is used these glyphs can still be typeset.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\dj}{%
+ \UseTextSymbol{OT1}{\dj}}
+\ProvideTextCommandDefault{\DJ}{%
+ \UseTextSymbol{OT1}{\DJ}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\SS}
+% For the \texttt{T1} encoding |\SS| is defined and selects a
+% specific glyph from the font, but for other encodings it is not
+% available. Therefor we make it available here.
+% \begin{macrocode}
+\DeclareTextCommand{\SS}{OT1}{SS}
+\ProvideTextCommandDefault{\SS}{\UseTextSymbol{OT1}{\SS}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Shorthands for quotation marks}
+%
+% Shorthands are provided for a number of different quotation
+% marks, which make them usable both outside and inside mathmode.
+%
+% \begin{macro}{\glq}
+% \begin{macro}{\grq}
+% \changes{babel~3.7a}{1997/04/25}{Make the definition of \cs{grq}
+% dependent on the font encoding}
+% \changes{babel~3.8b}{2004/05/02}{Made \cs{glq} fontencoding
+% dependent as well}
+% The `german' single quotes.
+% \begin{macrocode}
+\ProvideTextCommand{\glq}{OT1}{%
+ \textormath{\quotesinglbase}{\mbox{\quotesinglbase}}}
+\ProvideTextCommand{\glq}{T1}{%
+ \textormath{\quotesinglbase}{\mbox{\quotesinglbase}}}
+\ProvideTextCommandDefault{\glq}{\UseTextSymbol{OT1}\glq}
+% \end{macrocode}
+% The definition of |\grq| depends on the fontencoding. With
+% \texttt{T1} encoding no extra kerning is needed.
+% \begin{macrocode}
+\ProvideTextCommand{\grq}{T1}{%
+ \textormath{\textquoteleft}{\mbox{\textquoteleft}}}
+\ProvideTextCommand{\grq}{OT1}{%
+ \save@sf@q{\kern-.0125em%
+ \textormath{\textquoteleft}{\mbox{\textquoteleft}}%
+ \kern.07em\relax}}
+\ProvideTextCommandDefault{\grq}{\UseTextSymbol{OT1}\grq}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\glqq}
+% \begin{macro}{\grqq}
+% \changes{babel~3.7a}{1997/04/25}{Make the definition of \cs{grqq}
+% dependent on the font encoding}
+% \changes{babel~3.8b}{2004/05/02}{Made \cs{grqq} fontencoding
+% dependent as well}
+% The `german' double quotes.
+% \begin{macrocode}
+\ProvideTextCommand{\glqq}{OT1}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\ProvideTextCommand{\glqq}{T1}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\ProvideTextCommandDefault{\glqq}{\UseTextSymbol{OT1}\glqq}
+% \end{macrocode}
+% The definition of |\grqq| depends on the fontencoding. With
+% \texttt{T1} encoding no extra kerning is needed.
+% \begin{macrocode}
+\ProvideTextCommand{\grqq}{T1}{%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}
+\ProvideTextCommand{\grqq}{OT1}{%
+ \save@sf@q{\kern-.07em%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}%
+ \kern.07em\relax}}
+\ProvideTextCommandDefault{\grqq}{\UseTextSymbol{OT1}\grqq}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flq}
+% \begin{macro}{\frq}
+% \changes{babel~3.5f}{1995/08/07}{corrected spelling of
+% \cs{quilsingl...}}
+% \changes{babel~3.5f}{1995/09/05}{now use \cs{textormath} in these
+% definitions}
+% \changes{babel~3.8b}{2004/05/02}{Made \cs{flq} and \cs{frq}
+% fontencoding dependent}
+% The `french' single guillemets.
+% \begin{macrocode}
+\ProvideTextCommand{\flq}{OT1}{%
+ \textormath{\guilsinglleft}{\mbox{\guilsinglleft}}}
+\ProvideTextCommand{\flq}{T1}{%
+ \textormath{\guilsinglleft}{\mbox{\guilsinglleft}}}
+\ProvideTextCommandDefault{\flq}{\UseTextSymbol{OT1}\flq}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideTextCommand{\frq}{OT1}{%
+ \textormath{\guilsinglright}{\mbox{\guilsinglright}}}
+\ProvideTextCommand{\frq}{T1}{%
+ \textormath{\guilsinglright}{\mbox{\guilsinglright}}}
+\ProvideTextCommandDefault{\frq}{\UseTextSymbol{OT1}\frq}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\flqq}
+% \begin{macro}{\frqq}
+% \changes{babel~3.5f}{1995/08/07}{corrected spelling of
+% \cs{quillemot...}}
+% \changes{babel~3.5f}{1995/09/05}{now use \cs{textormath} in these
+% definitions}
+% \changes{babel~3.8b}{2004/05/02}{Made \cs{flqq} and \cs{frqq}
+% fontencoding dependent}
+% The `french' double guillemets.
+% \begin{macrocode}
+\ProvideTextCommand{\flqq}{OT1}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\ProvideTextCommand{\flqq}{T1}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\ProvideTextCommandDefault{\flqq}{\UseTextSymbol{OT1}\flqq}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProvideTextCommand{\frqq}{OT1}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+\ProvideTextCommand{\frqq}{T1}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+\ProvideTextCommandDefault{\frqq}{\UseTextSymbol{OT1}\frqq}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Umlauts and trema's}
+%
+% The command |\"| needs to have a different effect for different
+% languages. For German for instance, the `umlaut' should be
+% positioned lower than the default position for placing it over
+% the letters a, o, u, A, O and U. When placed over an e, i, E or I
+% it can retain its normal position. For Dutch the same glyph is
+% always placed in the lower position.
+%
+% \begin{macro}{\umlauthigh}
+% \changes{v3.8a}{2004/02/19}{Use \cs{leavevmode}\cs{bgroup} to
+% prevent problems when this command occurs in vertical mode.}
+% \begin{macro}{\umlautlow}
+% To be able to provide both positions of |\"| we provide two
+% commands to switch the positioning, the default will be
+% |\umlauthigh| (the normal positioning).
+% \begin{macrocode}
+\def\umlauthigh{%
+ \def\bbl@umlauta##1{\leavevmode\bgroup%
+ \expandafter\accent\csname\f@encoding dqpos\endcsname
+ ##1\allowhyphens\egroup}%
+ \let\bbl@umlaute\bbl@umlauta}
+\def\umlautlow{%
+ \def\bbl@umlauta{\protect\lower@umlaut}}
+\def\umlautelow{%
+ \def\bbl@umlaute{\protect\lower@umlaut}}
+\umlauthigh
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lower@umlaut}
+% The command |\lower@umlaut| is used to position the |\"| closer
+% the the letter.
+%
+% We want the umlaut character lowered, nearer to the letter. To do
+% this we need an extra \meta{dimen} register.
+% \begin{macrocode}
+\expandafter\ifx\csname U@D\endcsname\relax
+ \csname newdimen\endcsname\U@D
+\fi
+% \end{macrocode}
+% The following code fools \TeX's \texttt{make\_accent} procedure
+% about the current x-height of the font to force another placement
+% of the umlaut character.
+% \begin{macrocode}
+\def\lower@umlaut#1{%
+% \end{macrocode}
+% First we have to save the current x-height of the font, because
+% we'll change this font dimension and this is always done
+% globally.
+% \changes{v3.8a}{2004/02/19}{Use \cs{leavevmode}\cs{bgroup} to
+% prevent problems when this command occurs in vertical mode.}
+% \begin{macrocode}
+ \leavevmode\bgroup
+ \U@D 1ex%
+% \end{macrocode}
+% Then we compute the new x-height in such a way that the umlaut
+% character is lowered to the base character. The value of
+% \texttt{.45ex} depends on the \MF\ parameters with which the
+% fonts were built. (Just try out, which value will look best.)
+% \begin{macrocode}
+ {\setbox\z@\hbox{%
+ \expandafter\char\csname\f@encoding dqpos\endcsname}%
+ \dimen@ -.45ex\advance\dimen@\ht\z@
+% \end{macrocode}
+% If the new x-height is too low, it is not changed.
+% \begin{macrocode}
+ \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
+% \end{macrocode}
+% Finally we call the |\accent| primitive, reset the old x-height
+% and insert the base character in the argument.
+% \changes{babel~3.5f}{1996/04/02}{Added a \cs{allowhyphens}}
+% \changes{babel~3.5f}{1996/06/25}{removed \cs{allowhyphens}}
+% \begin{macrocode}
+ \expandafter\accent\csname\f@encoding dqpos\endcsname
+ \fontdimen5\font\U@D #1%
+ \egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% For all vowels we declare |\"| to be a composite command which
+% uses |\bbl@umlauta| or |\bbl@umlaute| to position the umlaut
+% character. We need to be sure that these definitions override the
+% ones that are provided when the package \pkg{fontenc} with
+% option \Lopt{OT1} is used. Therefor these declarations are
+% postponed until the beginning of the document.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \DeclareTextCompositeCommand{\"}{OT1}{a}{\bbl@umlauta{a}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{e}{\bbl@umlaute{e}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{i}{\bbl@umlaute{\i}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{\i}{\bbl@umlaute{\i}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{o}{\bbl@umlauta{o}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{u}{\bbl@umlauta{u}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{A}{\bbl@umlauta{A}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{E}{\bbl@umlaute{E}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{I}{\bbl@umlaute{I}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{O}{\bbl@umlauta{O}}%
+ \DeclareTextCompositeCommand{\"}{OT1}{U}{\bbl@umlauta{U}}%
+}
+% \end{macrocode}
+%
+% \subsection{The redefinition of the style commands}
+%
+% The rest of the code in this file can only be processed by
+% \LaTeX, so we check the current format. If it is plain \TeX,
+% processing should stop here. But, because of the need to limit
+% the scope of the definition of |\format|, a macro that is used
+% locally in the following |\if|~statement, this comparison is done
+% inside a group. To prevent \TeX\ from complaining about an
+% unclosed group, the processing of the command |\endinput| is
+% deferred until after the group is closed. This is accomplished by
+% the command |\aftergroup|.
+% \begin{macrocode}
+{\def\format{lplain}
+\ifx\fmtname\format
+\else
+ \def\format{LaTeX2e}
+ \ifx\fmtname\format
+ \else
+ \aftergroup\endinput
+ \fi
+\fi}
+% \end{macrocode}
+%
+% Now that we're sure that the code is seen by \LaTeX\ only, we
+% have to find out what the main (primary) document style is
+% because we want to redefine some macros. This is only necessary
+% for releases of \LaTeX\ dated before December~1991. Therefor
+% this part of the code can optionally be included in
+% \file{babel.def} by specifying the \texttt{docstrip} option
+% \texttt{names}.
+% \begin{macrocode}
+%<*names>
+% \end{macrocode}
+%
+% The standard styles can be distinguished by checking whether some
+% macros are defined. In table~\ref{styles} an overview is given of
+% the macros that can be used for this purpose.
+% \begin{table}[htb]
+% \begin{center}
+% \DeleteShortVerb{\|}
+% \begin{tabular}{|lcp{8cm}|}
+% \hline
+% article & : & both the \verb+\chapter+ and \verb+\opening+
+% macros are undefined\\
+% report and book & : & the \verb+\chapter+ macro is defined and
+% the \verb+\opening+ is undefined\\
+% letter & : & the \verb+\chapter+ macro is undefined and
+% the \verb+\opening+ is defined\\
+% \hline
+% \end{tabular}
+% \caption{How to determine the main document style}\label{styles}
+% \MakeShortVerb{\|}
+% \end{center}
+% \end{table}
+%
+% \noindent The macros that have to be redefined for the
+% \texttt{report} and \texttt{book} document styles happen to be
+% the same, so there is no need to distinguish between those two
+% styles.
+%
+% \begin{macro}{\doc@style}
+% First a parameter |\doc@style| is defined to identify the current
+% document style. This parameter might have been defined by a
+% document style that already uses macros instead of hard-wired
+% texts, such as \file{artikel1.sty}~\cite{BEP}, so the existence of
+% |\doc@style| is checked. If this macro is undefined, i.\,e., if
+% the document style is unknown and could therefore contain
+% hard-wired texts, |\doc@style| is defined to the default
+% value~`0'.
+% \changes{babel~3.0d}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \begin{macrocode}
+\ifx\@undefined\doc@style
+ \def\doc@style{0}%
+% \end{macrocode}
+% This parameter is defined in the following \texttt{if}
+% construction (see table~\ref{styles}):
+%
+% \begin{macrocode}
+ \ifx\@undefined\opening
+ \ifx\@undefined\chapter
+ \def\doc@style{1}%
+ \else
+ \def\doc@style{2}%
+ \fi
+ \else
+ \def\doc@style{3}%
+ \fi%
+\fi%
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{babel~3.1}{1991/11/05}{Removed definition of
+% \cs{if@restonecol}}
+%
+% \subsubsection{Redefinition of macros}
+%
+% Now here comes the real work: we start to redefine things and
+% replace hard-wired texts by macros. These redefinitions should be
+% carried out conditionally, in case it has already been done.
+%
+% For the \texttt{figure} and \texttt{table} environments we have
+% in all styles:
+% \begin{macrocode}
+\@ifundefined{figurename}{\def\fnum@figure{\figurename{} \thefigure}}{}
+\@ifundefined{tablename}{\def\fnum@table{\tablename{} \thetable}}{}
+% \end{macrocode}
+%
+% The rest of the macros have to be treated differently for each
+% style. When |\doc@style| still has its default value nothing
+% needs to be done.
+% \begin{macrocode}
+\ifcase \doc@style\relax
+\or
+% \end{macrocode}
+%
+% This means that \file{babel.def} is read after the
+% \texttt{article} style, where no |\chapter| and |\opening|
+% commands are defined\footnote{A fact that was pointed out to me
+% by Nico Poppelier and was already used in Piet van Oostrum's
+% document style option~\texttt{nl}.}.
+%
+% First we have the |\tableofcontents|,
+% |\listoffigures| and |\listoftables|:
+% \begin{macrocode}
+\@ifundefined{contentsname}%
+ {\def\tableofcontents{\section*{\contentsname\@mkboth
+ {\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
+ \@starttoc{toc}}}{}
+
+\@ifundefined{listfigurename}%
+ {\def\listoffigures{\section*{\listfigurename\@mkboth
+ {\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}%
+ \@starttoc{lof}}}{}
+
+\@ifundefined{listtablename}%
+ {\def\listoftables{\section*{\listtablename\@mkboth
+ {\uppercase{\listtablename}}{\uppercase{\listtablename}}}%
+ \@starttoc{lot}}}{}
+% \end{macrocode}
+%
+% Then the |\thebibliography| and |\theindex| environments.
+%
+% \begin{macrocode}
+\@ifundefined{refname}%
+ {\def\thebibliography#1{\section*{\refname
+ \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}}%
+ \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}%
+ \def\newblock{\hskip.11em plus.33em minus.07em}%
+ \sloppy\clubpenalty4000\widowpenalty\clubpenalty
+ \sfcode`\.=1000\relax}}{}
+
+\@ifundefined{indexname}%
+ {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+ \columnseprule \z@
+ \columnsep 35pt\twocolumn[\section*{\indexname}]%
+ \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}%
+ \thispagestyle{plain}%
+ \parskip\z@ plus.3pt\parindent\z@\let\item\@idxitem}}{}
+% \end{macrocode}
+%
+% The |abstract| environment:
+%
+% \begin{macrocode}
+\@ifundefined{abstractname}%
+ {\def\abstract{\if@twocolumn
+ \section*{\abstractname}%
+ \else \small
+ \begin{center}%
+ {\bf \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \quotation
+ \fi}}{}
+% \end{macrocode}
+%
+% And last but not least, the macro |\part|:
+%
+% \begin{macrocode}
+\@ifundefined{partname}%
+{\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart
+ \hspace{1em}#1}\else
+ \addcontentsline{toc}{part}{#1}\fi
+ {\parindent\z@ \raggedright
+ \ifnum \c@secnumdepth >\m@ne
+ \Large \bf \partname{} \thepart
+ \par \nobreak
+ \fi
+ \huge \bf
+ #2\markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex\@afterheading}%
+}{}
+% \end{macrocode}
+%
+% This is all that needs to be done for the \texttt{article} style.
+%
+% \begin{macrocode}
+\or
+% \end{macrocode}
+%
+% The next case is formed by the two styles \texttt{book} and
+% \texttt{report}. Basically we have to do the same as for the
+% \texttt{article} style, except now we must also change the
+% |\chapter| command.
+%
+% The tables of contents, figures and tables:
+% \begin{macrocode}
+\@ifundefined{contentsname}%
+ {\def\tableofcontents{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{\contentsname\@mkboth
+ {\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
+ \@starttoc{toc}%
+ \csname if@restonecol\endcsname\twocolumn
+ \csname fi\endcsname}}{}
+
+\@ifundefined{listfigurename}%
+ {\def\listoffigures{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{\listfigurename\@mkboth
+ {\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}%
+ \@starttoc{lof}%
+ \csname if@restonecol\endcsname\twocolumn
+ \csname fi\endcsname}}{}
+
+\@ifundefined{listtablename}%
+ {\def\listoftables{\@restonecolfalse
+ \if@twocolumn\@restonecoltrue\onecolumn
+ \fi\chapter*{\listtablename\@mkboth
+ {\uppercase{\listtablename}}{\uppercase{\listtablename}}}%
+ \@starttoc{lot}%
+ \csname if@restonecol\endcsname\twocolumn
+ \csname fi\endcsname}}{}
+% \end{macrocode}
+%
+% Again, the |bibliography| and |index| environments; notice that
+% in this case we use |\bibname| instead of |\refname| as in the
+% definitions for the \texttt{article} style. The reason for this
+% is that in the \texttt{article} document style the term
+% `References' is used in the definition of |\thebibliography|. In
+% the \texttt{report} and \texttt{book} document styles the term
+% `Bibliography' is used.
+% \begin{macrocode}
+\@ifundefined{bibname}%
+ {\def\thebibliography#1{\chapter*{\bibname
+ \@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}%
+ \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}%
+ \leftmargin\labelwidth \advance\leftmargin\labelsep
+ \usecounter{enumi}}%
+ \def\newblock{\hskip.11em plus.33em minus.07em}%
+ \sloppy\clubpenalty4000\widowpenalty\clubpenalty
+ \sfcode`\.=1000\relax}}{}
+
+\@ifundefined{indexname}%
+ {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+ \columnseprule \z@
+ \columnsep 35pt\twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}%
+ \thispagestyle{plain}%
+ \parskip\z@ plus.3pt\parindent\z@ \let\item\@idxitem}}{}
+% \end{macrocode}
+%
+% Here is the |abstract| environment:
+% \begin{macrocode}
+\@ifundefined{abstractname}%
+ {\def\abstract{\titlepage
+ \null\vfil
+ \begin{center}%
+ {\bf \abstractname}%
+ \end{center}}}{}
+% \end{macrocode}
+%
+% And last but not least the |\chapter|, |\appendix| and
+% |\part| macros.
+% \begin{macrocode}
+\@ifundefined{chaptername}{\def\@chapapp{\chaptername}}{}
+%
+\@ifundefined{appendixname}%
+ {\def\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \def\@chapapp{\appendixname}%
+ \def\thechapter{\Alph{chapter}}}}{}
+%
+\@ifundefined{partname}%
+ {\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart
+ \hspace{1em}#1}\else
+ \addcontentsline{toc}{part}{#1}\fi
+ \markboth{}{}%
+ {\centering
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bf \partname{} \thepart
+ \par
+ \vskip 20pt \fi
+ \Huge \bf
+ #1\par}\@endpart}}{}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\or
+% \end{macrocode}
+%
+% Now we address the case where \file{babel.def} is read after the
+% \texttt{letter} style. The \texttt{letter} document style
+% defines the macro |\opening| and some other macros that are
+% specific to \texttt{letter}. This means that we have to redefine
+% other macros, compared to the previous two cases.
+%
+% First two macros for the material at the end of a letter, the
+% |\cc| and |\encl| macros.
+% \begin{macrocode}
+\@ifundefined{ccname}%
+ {\def\cc#1{\par\noindent
+ \parbox[t]{\textwidth}%
+ {\@hangfrom{\rm \ccname : }\ignorespaces #1\strut}\par}}{}
+
+\@ifundefined{enclname}%
+ {\def\encl#1{\par\noindent
+ \parbox[t]{\textwidth}%
+ {\@hangfrom{\rm \enclname : }\ignorespaces #1\strut}\par}}{}
+% \end{macrocode}
+%
+% The last thing we have to do here is to redefine the
+% \texttt{headings} pagestyle:
+% \changes{babel~3.3}{1993/07/11}{\cs{headpagename} should be
+% \cs{pagename}}
+% \begin{macrocode}
+\@ifundefined{headtoname}%
+ {\def\ps@headings{%
+ \def\@oddhead{\sl \headtoname{} \ignorespaces\toname \hfil
+ \@date \hfil \pagename{} \thepage}%
+ \def\@oddfoot{}}}{}
+% \end{macrocode}
+%
+% This was the last of the four standard document styles, so if
+% |\doc@style| has another value we do nothing and just close the
+% \texttt{if} construction.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% Here ends the code that can be optionally included when a version
+% of \LaTeX\ is in use that is dated \emph{before} December~1991.
+% \begin{macrocode}
+%</names>
+%</core>
+% \end{macrocode}
+%
+% \subsection{Cross referencing macros}
+%
+% The \LaTeX\ book states:
+% \begin{quote}
+% The \emph{key} argument is any sequence of letters, digits, and
+% punctuation symbols; upper- and lowercase letters are regarded as
+% different.
+% \end{quote}
+% When the above quote should still be true when a document is
+% typeset in a language that has active characters, special care
+% has to be taken of the category codes of these characters when
+% they appear in an argument of the cross referencing macros.
+%
+% When a cross referencing command processes its argument, all
+% tokens in this argument should be character tokens with category
+% `letter' or `other'.
+%
+% The only way to accomplish this in most cases is to use the trick
+% described in the \TeX book~\cite{DEK} (Appendix~D, page~382).
+% The primitive |\meaning| applied to a token expands to the
+% current meaning of this token. For example, `|\meaning\A|' with
+% |\A| defined as `|\def\A#1{\B}|' expands to the characters
+% `|macro:#1->\B|' with all category codes set to `other' or
+% `space'.
+%
+% \begin{macro}{\bbl@redefine}
+% \changes{babel~3.5f}{1995/11/15}{Macro added}
+% To redefine a command, we save the old meaning of the macro.
+% Then we redefine it to call the original macro with the
+% `sanitized' argument. The reason why we do it this way is that
+% we don't want to redefine the \LaTeX\ macros completely in case
+% their definitions change (they have changed in the past).
+%
+% Because we need to redefine a number of commands we define the
+% command |\bbl@redefine| which takes care of this. It creates a
+% new control sequence, |\org@...|
+% \begin{macrocode}
+%<*core|shorthands>
+\def\bbl@redefine#1{%
+ \edef\bbl@tempa{\expandafter\@gobble\string#1}%
+ \expandafter\let\csname org@\bbl@tempa\endcsname#1
+ \expandafter\def\csname\bbl@tempa\endcsname}
+% \end{macrocode}
+%
+% This command should only be used in the preamble of the document.
+% \begin{macrocode}
+\@onlypreamble\bbl@redefine
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@redefine@long}
+% \changes{babel~3.6f}{1997/01/14}{Macro added}
+% This version of |\babel@redefine| can be used to redefine |\long|
+% commands such as |\ifthenelse|.
+% \begin{macrocode}
+\def\bbl@redefine@long#1{%
+ \edef\bbl@tempa{\expandafter\@gobble\string#1}%
+ \expandafter\let\csname org@\bbl@tempa\endcsname#1
+ \expandafter\long\expandafter\def\csname\bbl@tempa\endcsname}
+\@onlypreamble\bbl@redefine@long
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@redefinerobust}
+% \changes{babel~3.5f}{1995/11/15}{Macro added}
+% For commands that are redefined, but which \textit{might} be
+% robust we need a slightly more intelligent macro. A robust
+% command |foo| is defined to expand to |\protect|\verb*|\foo |. So
+% it is necessary to check whether \verb*|\foo | exists.
+% \begin{macrocode}
+\def\bbl@redefinerobust#1{%
+ \edef\bbl@tempa{\expandafter\@gobble\string#1}%
+ \expandafter\ifx\csname \bbl@tempa\space\endcsname\relax
+ \expandafter\let\csname org@\bbl@tempa\endcsname#1
+ \expandafter\edef\csname\bbl@tempa\endcsname{\noexpand\protect
+ \expandafter\noexpand\csname\bbl@tempa\space\endcsname}%
+ \else
+ \expandafter\let\csname org@\bbl@tempa\expandafter\endcsname
+ \csname\bbl@tempa\space\endcsname
+ \fi
+% \end{macrocode}
+% The result of the code above is that the command that is being
+% redefined is always robust afterwards. Therefor all we need to do
+% now is define \verb*|\foo |.
+% \changes{babel~3.5f}{1996/04/09}{Define \cs*{foo } instead of
+% \cs{foo}}
+% \begin{macrocode}
+ \expandafter\def\csname\bbl@tempa\space\endcsname}
+% \end{macrocode}
+%
+% This command should only be used in the preamble of the document.
+% \begin{macrocode}
+\@onlypreamble\bbl@redefinerobust
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newlabel}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% The macro |\label| writes a line with a |\newlabel| command
+% into the |.aux| file to define labels.
+% \begin{macrocode}
+%\bbl@redefine\newlabel#1#2{%
+% \@safe@activestrue\org@newlabel{#1}{#2}\@safe@activesfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@newl@bel}
+% \changes{babel~3.6i}{1997/03/01}{Now redefine \cs{@newl@bel} instead
+% of \cs{@lbibitem} and \cs{newlabel}}
+% We need to change the definition of the \LaTeX-internal macro
+% |\@newl@bel|. This is needed because we need to make sure that
+% shorthand characters expand to their non-active version.
+%
+%^^A The following lines commented out in preparation for a change
+%^^A in the LaTeX definition of \@enwl@bel... JLB 2000/10/01
+%^^A
+%^^A To play it safe when redefining a \LaTeX-internal command we
+%^^A first check whether its definition didn't change.
+%^^A \begin{macrocode}
+%^^A\CheckCommand*\@newl@bel[3]{%
+%^^A \@ifundefined{#1@#2}%
+%^^A \relax
+%^^A {\gdef \@multiplelabels {%
+%^^A \@latex@warning@no@line{There were multiply-defined labels}}%
+%^^A \@latex@warning@no@line{Label `#2' multiply defined}}%
+%^^A \global\@namedef{#1@#2}{#3}}
+%^^A \end{macrocode}
+%^^A Then we give the new definition.
+% \begin{macrocode}
+\def\@newl@bel#1#2#3{%
+% \end{macrocode}
+% First we open a new group to keep the changed setting of
+% |\protect| local and then we set the |@safe@actives| switch to
+% true to make sure that any shorthand that appears in any of the
+% arguments immediately expands to its non-active self.
+% \changes{babel~3.7a}{1997/12/19}{Call \cs{@safe@activestrue}
+% directly}
+% \begin{macrocode}
+ {%
+ \@safe@activestrue
+ \@ifundefined{#1@#2}%
+ \relax
+ {%
+ \gdef \@multiplelabels {%
+ \@latex@warning@no@line{There were multiply-defined labels}}%
+ \@latex@warning@no@line{Label `#2' multiply defined}%
+ }%
+ \global\@namedef{#1@#2}{#3}%
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@testdef}
+% An internal \LaTeX\ macro used to test if the labels that have
+% been written on the |.aux| file have changed. It is called by
+% the |\enddocument| macro. This macro needs to be completely
+% rewritten, using |\meaning|. The reason for this is that in some
+% cases the expansion of |\#1@#2| contains the same characters as
+% the |#3|; but the character codes differ. Therefor \LaTeX\ keeps
+% reporting that the labels may have changed.
+% \changes{babel~3.4g}{1994/08/30}{Moved the \cs{def} inside the
+% macrocode environment}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% \changes{babel~3.5f}{1996/01/09}{Complete rewrite of this macro as
+% the same character ended up with different category codes in the
+% labels that are being compared. Now use \cs{meaning}}
+% \changes{babel~3.5f}{1996/01/16}{Use \cs{strip@prefix} only on
+% \cs{bbl@tempa} when it is not \cs{relax}}
+% \changes{babel~3.6i}{1997/02/28}{Make sure that shorthands don't get
+% expanded at the wrong moment.}
+% \changes{babel~3.6i}{1997/03/01}{\cs{@safe@activesfalse} is now
+% part of the label definition}
+% \changes{babel~3.7a}{1998/03/13}{Removed \cs{@safe@activesfalse}
+% from the label definition}
+% \begin{macrocode}
+\CheckCommand*\@testdef[3]{%
+ \def\reserved@a{#3}%
+ \expandafter \ifx \csname #1@#2\endcsname \reserved@a
+ \else
+ \@tempswatrue
+ \fi}
+% \end{macrocode}
+% Now that we made sure that |\@testdef| still has the same
+% definition we can rewrite it. First we make the shorthands
+% `safe'.
+% \begin{macrocode}
+\def\@testdef #1#2#3{%
+ \@safe@activestrue
+% \end{macrocode}
+% Then we use |\bbl@tempa| as an `alias' for the macro that
+% contains the label which is being checked.
+% \begin{macrocode}
+ \expandafter\let\expandafter\bbl@tempa\csname #1@#2\endcsname
+% \end{macrocode}
+% Then we define |\bbl@tempb| just as |\@newl@bel| does it.
+% \begin{macrocode}
+ \def\bbl@tempb{#3}%
+ \@safe@activesfalse
+% \end{macrocode}
+% When the label is defined we replace the definition of
+% |\bbl@tempa| by its meaning.
+% \begin{macrocode}
+ \ifx\bbl@tempa\relax
+ \else
+ \edef\bbl@tempa{\expandafter\strip@prefix\meaning\bbl@tempa}%
+ \fi
+% \end{macrocode}
+% We do the same for |\bbl@tempb|.
+% \begin{macrocode}
+ \edef\bbl@tempb{\expandafter\strip@prefix\meaning\bbl@tempb}%
+% \end{macrocode}
+% If the label didn't change, |\bbl@tempa| and |\bbl@tempb| should
+% be identical macros.
+% \begin{macrocode}
+ \ifx \bbl@tempa \bbl@tempb
+ \else
+ \@tempswatrue
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ref}
+% \begin{macro}{\pageref}
+% The same holds for the macro |\ref| that references a label
+% and |\pageref| to reference a page. So we redefine |\ref| and
+% |\pageref|. While we change these macros, we make them robust as
+% well (if they weren't already) to prevent problems if they should
+% become expanded at the wrong moment.
+% \changes{babel~3.5b}{1995/03/07}{Made \cs{ref} and \cs{pageref}
+% robust (PR1353)}
+% \changes{babel~3.5d}{1995/07/04}{use a different control sequence
+% while making \cs{ref} and \cs{pageref} robust}
+% \changes{babel~3.5f}{1995/11/06}{redefine \cs*{ref } if it exists
+% instead of \cs{ref}}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefinerobust}}
+% \changes{babel~3.5f}{1996/01/19}{redefine \cs{\@setref} instead of
+% \cs{ref} and \cs{pageref} in \LaTeXe.}
+% \changes{babel~3.5f}{1996/01/21}{Reverse the previous change as it
+% inhibits the use of active characters in labels}
+% \begin{macrocode}
+\bbl@redefinerobust\ref#1{%
+ \@safe@activestrue\org@ref{#1}\@safe@activesfalse}
+\bbl@redefinerobust\pageref#1{%
+ \@safe@activestrue\org@pageref{#1}\@safe@activesfalse}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@citex}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% The macro used to cite from a bibliography, |\cite|, uses an
+% internal macro, |\@citex|.
+% It is this internal macro that picks up the argument(s),
+% so we redefine this internal macro and leave |\cite| alone. The
+% first argument is used for typesetting, so the shorthands need
+% only be deactivated in the second argument.
+% \changes{babel~3.7g}{2000/10/01}{The shorthands need to be
+% deactivated for the second argument of \cs{@citex} only.}
+% \begin{macrocode}
+\bbl@redefine\@citex[#1]#2{%
+ \@safe@activestrue\edef\@tempa{#2}\@safe@activesfalse
+ \org@@citex[#1]{\@tempa}}
+% \end{macrocode}
+% Unfortunately, the packages \pkg{natbib} and \pkg{cite} need a
+% different definition of |\@citex|...
+% To begin with, \pkg{natbib} has a definition for |\@citex| with
+% \emph{three} arguments... We only know that a package is loaded
+% when |\begin{document}| is executed, so we need to postpone the
+% different redefinition.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{natbib}{%
+% \end{macrocode}
+% Notice that we use |\def| here instead of |\bbl@redefine| because
+% |\org@@citex| is already defined and we don't want to overwrite
+% that definition (it would result in parameter stack overflow
+% because of a circular definition).
+% \begin{macrocode}
+ \def\@citex[#1][#2]#3{%
+ \@safe@activestrue\edef\@tempa{#3}\@safe@activesfalse
+ \org@@citex[#1][#2]{\@tempa}}%
+ }{}}
+% \end{macrocode}
+% The package \pkg{cite} has a definition of |\@citex| where the
+% shorthands need to be turned off in both arguments.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{cite}{%
+ \def\@citex[#1]#2{%
+ \@safe@activestrue\org@@citex[#1]{#2}\@safe@activesfalse}%
+ }{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nocite}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% The macro |\nocite| which is used to instruct BiB\TeX\ to
+% extract uncited references from the database.
+% \begin{macrocode}
+\bbl@redefine\nocite#1{%
+ \@safe@activestrue\org@nocite{#1}\@safe@activesfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bibcite}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% The macro that is used in the |.aux| file to define citation
+% labels. When packages such as \pkg{natbib} or \pkg{cite} are not
+% loaded its second argument is used to typeset the citation
+% label. In that case, this second argument can contain active
+% characters but is used in an environment where
+% |\@safe@activestrue| is in effect. This switch needs to be reset
+% inside the |\hbox| which contains the citation label. In order to
+% determine during \file{.aux} file processing which definition of
+% |\bibcite| is needed we define |\bibcite| in such a way that it
+% redefines itself with the proper definition.
+% \changes{babel~3.6s}{1999/04/13}{Need to determine `online' which
+% definition of \cs{bibcite} is needed}
+% \changes{babel~3.6v}{1999/04/21}{Also check for \pkg{cite} it can't
+% handle \cs{@safe@activesfalse} in its second argument}
+% \begin{macrocode}
+\bbl@redefine\bibcite{%
+% \end{macrocode}
+% We call |\bbl@cite@choice| to select the proper definition for
+% |\bibcite|. This new definition is then activated.
+% \begin{macrocode}
+ \bbl@cite@choice
+ \bibcite}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@bibcite}
+% \changes{babel~3.6v}{1999/04/21}{Macro \cs{bbl@bibcite} added}
+% The macro |\bbl@bibcite| holds the definition of |\bibcite|
+% needed when neither \pkg{natbib} nor \pkg{cite} is loaded.
+% \begin{macrocode}
+\def\bbl@bibcite#1#2{%
+ \org@bibcite{#1}{\@safe@activesfalse#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bbl@cite@choice}
+% \changes{babel~3.6v}{1999/04/21}{Macro \cs{bbl@cite@choice} added}
+% The macro |\bbl@cite@choice| determines which definition of
+% |\bibcite| is needed.
+% \begin{macrocode}
+\def\bbl@cite@choice{%
+% \end{macrocode}
+% First we give |\bibcite| its default definition.
+% \begin{macrocode}
+ \global\let\bibcite\bbl@bibcite
+% \end{macrocode}
+% Then, when \pkg{natbib} is loaded we restore the original
+% definition of |\bibcite| .
+% \begin{macrocode}
+ \@ifpackageloaded{natbib}{\global\let\bibcite\org@bibcite}{}%
+% \end{macrocode}
+% For \pkg{cite} we do the same.
+% \begin{macrocode}
+ \@ifpackageloaded{cite}{\global\let\bibcite\org@bibcite}{}%
+% \end{macrocode}
+% Make sure this only happens once.
+% \begin{macrocode}
+ \global\let\bbl@cite@choice\relax
+ }
+% \end{macrocode}
+%
+% When a document is run for the first time, no \file{.aux} file is
+% available, and |\bibcite| will not yet be properly defined. In
+% this case, this has to happen before the document starts.
+% \begin{macrocode}
+\AtBeginDocument{\bbl@cite@choice}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@bibitem}
+% \changes{babel~3.5f}{1995/11/15}{Now use \cs{bbl@redefine}}
+% One of the two internal \LaTeX\ macros called by |\bibitem|
+% that write the citation label on the |.aux| file.
+% \begin{macrocode}
+\bbl@redefine\@bibitem#1{%
+ \@safe@activestrue\org@@bibitem{#1}\@safe@activesfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{marks}
+%
+% \begin{macro}{\markright}
+% \begin{macro}{\markboth}
+% \changes{babel~3.6i}{1997/03/15}{Added redefinition of \cs{mark...}
+% commands}
+% Because the output routine is asynchronous, we must
+% pass the current language attribute to the head lines, together
+% with the text that is put into them. To achieve this we need to
+% adapt the definition of |\markright| and |\markboth| somewhat.
+% \changes{babel~3.7c}{1999/04/08}{Removed the use of \cs{head@lang}
+% (PR 2990)}
+% \changes{babel~3.7c}{1999/04/09}{Avoid expanding the arguments by
+% storing them in token registers}
+% \changes{babel~3.7m}{2003/11/15}{added \cs{bbl@restore@actives} to
+% the mark}
+% \changes{babel~3.8c}{2004/05/26}{No need to add \emph{anything} to
+% an empty mark; prevented this by checking the contents of the
+% argument}
+% \changes{babel~3.8f}{2005/05/15}{Make the definition independent of
+% the original definition; expand \cs{languagename} before passing
+% it into the token registers}
+% \begin{macrocode}
+\bbl@redefine\markright#1{%
+% \end{macrocode}
+% First of all we temporarily store the language switching command,
+% using an expanded definition in order to get the current value of
+% |\languagename|.
+% \begin{macrocode}
+ \edef\bbl@tempb{\noexpand\protect
+ \noexpand\foreignlanguage{\languagename}}%
+% \end{macrocode}
+% Then, we check whether the argument is empty; if it is, we
+% just make sure the scratch token register is empty.
+% \begin{macrocode}
+ \def\bbl@arg{#1}%
+ \ifx\bbl@arg\@empty
+ \toks@{}%
+ \else
+% \end{macrocode}
+% Next, we store the argument to |\markright| in the scratch token
+% register, together with the expansion of |\bbl@tempb| (containing
+% the language switching command) as defined before. This way
+% these commands will not be expanded by using |\edef| later
+% on, and we make sure that the text is typeset using the
+% correct language settings. While doing so, we make sure that
+% active characters that may end up in the mark are not disabled by
+% the output routine kicking in while \cs{@safe@activestrue} is in
+% effect.
+% \begin{macrocode}
+ \expandafter\toks@\expandafter{%
+ \bbl@tempb{\protect\bbl@restore@actives#1}}%
+ \fi
+% \end{macrocode}
+% Then we define a temporary control sequence using |\edef|.
+% \begin{macrocode}
+ \edef\bbl@tempa{%
+% \end{macrocode}
+% When |\bbl@tempa| is executed, only |\languagename| will be
+% expanded, because of the way the token register was filled.
+% \begin{macrocode}
+ \noexpand\org@markright{\the\toks@}}%
+ \bbl@tempa
+}
+% \end{macrocode}
+% The definition of |\markboth| is equivalent to that of
+% |\markright|, except that we need two token registers.
+% \changes{babel~3.7m}{2003/11/15}{added \cs{bbl@restore@actives} to
+% the mark}
+% \changes{babel~3.8c}{2004/05/26}{No need to add \emph{anything} to
+% an empty mark, prevented this by checking the contents of the
+% arguments}
+% \changes{babel~3.8f}{2005/05/15}{Make the definition independent of
+% the original definition; expand \cs{languagename} before passing
+% it into the token registers}
+% \begin{macrocode}
+\bbl@redefine\markboth#1#2{%
+ \edef\bbl@tempb{\noexpand\protect
+ \noexpand\foreignlanguage{\languagename}}%
+ \def\bbl@arg{#1}%
+ \ifx\bbl@arg\@empty
+ \toks@{}%
+ \else
+ \expandafter\toks@\expandafter{%
+ \bbl@tempb{\protect\bbl@restore@actives#1}}%
+ \fi
+ \def\bbl@arg{#2}%
+ \ifx\bbl@arg\@empty
+ \toks8{}%
+ \else
+ \expandafter\toks8\expandafter{%
+ \bbl@tempb{\protect\bbl@restore@actives#2}}%
+ \fi
+ \edef\bbl@tempa{%
+ \noexpand\org@markboth{\the\toks@}{\the\toks8}}%
+ \bbl@tempa
+}
+%</core|shorthands>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Encoding issues (part 2)}
+%
+% \changes{babel~3.7c}{1999/04/16}{Removed redefinition of \cs{@roman}
+% and \cs{@Roman}}
+%
+% \begin{macro}{\TeX}
+% \begin{macro}{\LaTeX}
+% \changes{babel~3.7a}{1998/03/12}{Make \TeX\ and \LaTeX\ logos
+% encoding-independent}
+% Because documents may use font encodings other than one of the
+% latin encodings, we make sure that the logos of \TeX\ and
+% \LaTeX\ always come out in the right encoding.
+% \begin{macrocode}
+%<*core>
+\bbl@redefine\TeX{\textlatin{\org@TeX}}
+\bbl@redefine\LaTeX{\textlatin{\org@LaTeX}}
+%</core>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Preventing clashes with other packages}
+%
+% \subsubsection{\pkg{ifthen}}
+%
+% \begin{macro}{\ifthenelse}
+% \changes{babel~3.5g}{1996/08/11}{Redefinition of \cs{ifthenelse}
+% added to circumvent problems with \cs{pageref} in the argument of
+% \cs{isodd}}
+% Sometimes a document writer wants to create a special effect
+% depending on the page a certain fragment of text appears on. This
+% can be achieved by the following piece of code:
+% \begin{verbatim}
+% \ifthenelse{\isodd{\pageref{some:label}}}
+% {code for odd pages}
+% {code for even pages}
+% \end{verbatim}
+% In order for this to work the argument of |\isodd| needs to be
+% fully expandable. With the above redefinition of |\pageref| it is
+% not in the case of this example. To overcome that, we add some
+% code to the definition of |\ifthenelse| to make things work.
+%
+% The first thing we need to do is check if the package
+% \pkg{ifthen} is loaded. This should be done at |\begin{document}|
+% time.
+% \begin{macrocode}
+%<*package>
+\AtBeginDocument{%
+ \@ifpackageloaded{ifthen}{%
+% \end{macrocode}
+% Then we can redefine |\ifthenelse|:
+% \changes{babel~3.6f}{1997/01/14}{\cs{ifthenelse} needs to be long}
+% \begin{macrocode}
+ \bbl@redefine@long\ifthenelse#1#2#3{%
+% \end{macrocode}
+% We want to revert the definition of |\pageref| to its original
+% definition for the duration of |\ifthenelse|, so we first need to
+% store its current meaning.
+% \begin{macrocode}
+ \let\bbl@tempa\pageref
+ \let\pageref\org@pageref
+% \end{macrocode}
+% Then we can set the |\@safe@actives| switch and call the original
+% |\ifthenelse|. In order to be able to use shorthands in the
+% second and third arguments of |\ifthenelse| the resetting of the
+% switch \emph{and} the definition of |\pageref| happens inside
+% those arguments.
+% \changes{babel~3.6i}{1997/02/25}{Now reset the @safe@actives switch
+% inside the 2nd and 3rd arguments of \cs{ifthenelse}}
+% \changes{babel~3.7f}{2000/06/29}{\cs{pageref} needs to have its
+% babel definition reinstated in the second and third arguments}
+% \begin{macrocode}
+ \@safe@activestrue
+ \org@ifthenelse{#1}{%
+ \let\pageref\bbl@tempa
+ \@safe@activesfalse
+ #2}{%
+ \let\pageref\bbl@tempa
+ \@safe@activesfalse
+ #3}%
+ }%
+% \end{macrocode}
+% When the package wasn't loaded we do nothing.
+% \begin{macrocode}
+ }{}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\pkg{varioref}}
+%
+% \begin{macro}{\@@vpageref}
+% \changes{babel~3.6a}{1996/10/29}{Redefinition of \cs{@@vpageref}
+% added to circumvent problems with active \texttt{:} in the
+% argument of \cs{vref} when \pkg{varioref} is used}
+% \begin{macro}{\vrefpagenum}
+% \changes{babel~3.7o}{2003/11/18}{Added redefinition of
+% \cs{vrefpagenum} which deals with ranges of pages}
+% \begin{macro}{\Ref}
+% \changes{babel~3.8g}{2005/05/21}{We also need to adapt \cs{Ref}
+% which needs to be able to uppercase the first letter of the
+% expansion of \cs{ref}}
+% When the package varioref is in use we need to modify its
+% internal command |\@@vpageref| in order to prevent problems when
+% an active character ends up in the argument of |\vref|.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{varioref}{%
+ \bbl@redefine\@@vpageref#1[#2]#3{%
+ \@safe@activestrue
+ \org@@@vpageref{#1}[#2]{#3}%
+ \@safe@activesfalse}%
+% \end{macrocode}
+% The same needs to happen for |\vrefpagenum|.
+% \begin{macrocode}
+ \bbl@redefine\vrefpagenum#1#2{%
+ \@safe@activestrue
+ \org@vrefpagenum{#1}{#2}%
+ \@safe@activesfalse}%
+% \end{macrocode}
+% The package \pkg{varioref} defines |\Ref| to be a robust command
+% wich uppercases the first character of the reference text. In
+% order to be able to do that it needs to access the exandable form
+% of |\ref|. So we employ a little trick here. We redefine the
+% (internal) command \verb*|\Ref | to call |\org@ref| instead of
+% |\ref|. The disadvantgage of this solution is that whenever the
+% derfinition of |\Ref| changes, this definition needs to be updated
+% as well.
+% \begin{macrocode}
+ \expandafter\def\csname Ref \endcsname#1{%
+ \protected@edef\@tempa{\org@ref{#1}}\expandafter\MakeUppercase\@tempa}
+ }{}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{\pkg{hhline}}
+%
+% \begin{macro}{\hhline}
+% Delaying the activation of the shorthand characters has introduced
+% a problem with the \pkg{hhline} package. The reason is that it
+% uses the `:' character which is made active by the french support
+% in \babel. Therefor we need to \emph{reload} the package when
+% the `:' is an active character.
+%
+% So at |\begin{document}| we check whether \pkg{hhline} is loaded.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{hhline}%
+% \end{macrocode}
+% Then we check whether the expansion of |\normal@char:| is not
+% equal to |\relax|.
+% \changes{babel~3.8b}{2004/04/19}{added \cs{string} to prevent
+% unwanted expansion of the colon}
+% \begin{macrocode}
+ {\expandafter\ifx\csname normal@char\string:\endcsname\relax
+ \else
+% \end{macrocode}
+% In that case we simply reload the package. Note that this happens
+% \emph{after} the category code of the @-sign has been changed to
+% other, so we need to temporarily change it to letter again.
+% \begin{macrocode}
+ \makeatletter
+ \def\@currname{hhline}\input{hhline.sty}\makeatother
+ \fi}%
+ {}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{General}
+%
+% \begin{macro}{\FOREIGNLANGUAGE}
+% The package \pkg{fancyhdr} treats the running head and fout lines
+% somewhat differently as the standard classes. A symptom of this is
+% that the command |\foreignlanguage| which \babel\ adds to the
+% marks can end up inside the argument of |\MakeUppercase|. To
+% prevent unexpected results we need to define |\FOREIGNLANGUAGE|
+% here.
+% \changes{babel~3.7j}{2003/05/23}{Define \cs{FOREIGNLANGUAGE}
+% unconditionally}
+% \begin{macrocode}
+\DeclareRobustCommand{\FOREIGNLANGUAGE}[1]{%
+ \lowercase{\foreignlanguage{#1}}}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nfss@catcodes}
+% \changes{babel~3.5g}{1996/08/18}{Need to add the double quote and
+% acute characters to \cs{nfss@catcodes} to prevent problems when
+% reading in .fd files}
+% \LaTeX's font selection scheme sometimes wants to read font
+% definition files in the middle of processing the document. In
+% order to guard against any characters having the wrong
+% |\catcode|s it always calls |\nfss@catcodes| before loading a
+% file. Unfortunately, the characters |"| and |'| are not dealt
+% with. Therefor we have to add them until \LaTeX\ does that
+% herself.
+% \begin{macrocode}
+%<*core|shorthands>
+\ifx\nfss@catcodes\@undefined
+\else
+ \addto\nfss@catcodes{%
+ \@makeother\'%
+ \@makeother\"%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</core|shorthands>
+% \end{macrocode}
+%
+% \section{Local Language Configuration}
+%
+% \begin{macro}{\loadlocalcfg}
+% At some sites it may be necessary to add site-specific actions to
+% a language definition file. This can be done by creating a file
+% with the same name as the language definition file, but with the
+% extension \file{.cfg}. For instance the file \file{norsk.cfg}
+% will be loaded when the language definition file \file{norsk.ldf}
+% is loaded.
+%
+% \changes{babel~3.5d}{1995/06/22}{Added macro}
+% \begin{macrocode}
+%<*core>
+% \end{macrocode}
+% For plain-based formats we don't want to override the definition
+% of |\loadlocalcfg| from \file{plain.def}.
+% \begin{macrocode}
+\ifx\loadlocalcfg\@undefined
+ \def\loadlocalcfg#1{%
+ \InputIfFileExists{#1.cfg}
+ {\typeout{*************************************^^J%
+ * Local config file #1.cfg used^^J%
+ *}%
+ }
+ {}}
+\fi
+% \end{macrocode}
+% Just to be compatible with \LaTeX$\:$2.09 we add a few more lines
+% of code:
+% \begin{macrocode}
+\ifx\@unexpandable@protect\@undefined
+ \def\@unexpandable@protect{\noexpand\protect\noexpand}
+ \long\def \protected@write#1#2#3{%
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+\fi
+%</core>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \clearpage
+% \section{Driver files for the documented source code}
+%
+% Since \babel\ version 3.4 all source files that are part of the
+% \babel\ system can be typeset separately. But to typeset
+% them all in one document, the file \file{babel.drv} can be used.
+% If you only want the information on how to use the \babel\ system
+% and what goodies are provided by the language-specific files, you
+% can run the file \file{user.drv} through \LaTeX\ to get a user
+% guide.
+%
+% \changes{babel~3.4b}{1994/05/18}{Use the ltxdoc class instead of
+% article}
+% \changes{babel~3.7a}{1997/05/21}{Now need packages t1enc and
+% supertabular to be loaded; the documentation for icelandic needs
+% its \file{.ldf} file to be present}
+% \changes{babel~3.8a}{2004/02/20}{Also load package url}
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url,t1enc,supertabular}
+\usepackage[icelandic,english]{babel}
+\DoNotIndex{\!,\',\,,\.,\-,\:,\;,\?,\/,\^,\`,\@M}
+\DoNotIndex{\@,\@ne,\@m,\@afterheading,\@date,\@endpart}
+\DoNotIndex{\@hangfrom,\@idxitem,\@makeschapterhead,\@mkboth}
+\DoNotIndex{\@oddfoot,\@oddhead,\@restonecolfalse,\@restonecoltrue}
+\DoNotIndex{\@starttoc,\@unused}
+\DoNotIndex{\accent,\active}
+\DoNotIndex{\addcontentsline,\advance,\Alph,\arabic}
+\DoNotIndex{\baselineskip,\begin,\begingroup,\bf,\box,\c@secnumdepth}
+\DoNotIndex{\catcode,\centering,\char,\chardef,\clubpenalty}
+\DoNotIndex{\columnsep,\columnseprule,\crcr,\csname}
+\DoNotIndex{\day,\def,\dimen,\discretionary,\divide,\dp,\do}
+\DoNotIndex{\edef,\else,\@empty,\end,\endgroup,\endcsname,\endinput}
+\DoNotIndex{\errhelp,\errmessage,\expandafter,\fi,\filedate}
+\DoNotIndex{\fileversion,\fmtname,\fnum@figure,\fnum@table,\fontdimen}
+\DoNotIndex{\gdef,\global}
+\DoNotIndex{\hbox,\hidewidth,\hfil,\hskip,\hspace,\ht,\Huge,\huge}
+\DoNotIndex{\ialign,\if@twocolumn,\ifcase,\ifcat,\ifhmode,\ifmmode}
+\DoNotIndex{\ifnum,\ifx,\immediate,\ignorespaces,\input,\item}
+\DoNotIndex{\kern}
+\DoNotIndex{\labelsep,\Large,\large,\labelwidth,\lccode,\leftmargin}
+\DoNotIndex{\lineskip,\leavevmode,\let,\list,\ll,\long,\lower}
+\DoNotIndex{\m@ne,\mathchar,\mathaccent,\markboth,\month,\multiply}
+\DoNotIndex{\newblock,\newbox,\newcount,\newdimen,\newif,\newwrite}
+\DoNotIndex{\nobreak,\noexpand,\noindent,\null,\number}
+\DoNotIndex{\onecolumn,\or}
+\DoNotIndex{\p@,par, \parbox,\parindent,\parskip,\penalty}
+\DoNotIndex{\protect,\ps@headings}
+\DoNotIndex{\quotation}
+\DoNotIndex{\raggedright,\raise,\refstepcounter,\relax,\rm,\setbox}
+\DoNotIndex{\section,\setcounter,\settowidth,\scriptscriptstyle}
+\DoNotIndex{\sfcode,\sl,\sloppy,\small,\space,\spacefactor,\strut}
+\DoNotIndex{\string}
+\DoNotIndex{\textwidth,\the,\thechapter,\thefigure,\thepage,\thepart}
+\DoNotIndex{\thetable,\thispagestyle,\titlepage,\tracingmacros}
+\DoNotIndex{\tw@,\twocolumn,\typeout,\uppercase,\usecounter}
+\DoNotIndex{\vbox,\vfil,\vskip,\vspace,\vss}
+\DoNotIndex{\widowpenalty,\write,\xdef,\year,\z@,\z@skip}
+% \end{macrocode}
+%
+% Here |\dlqq| is defined so that an example of |"'| can be
+% given.
+% \begin{macrocode}
+\makeatletter
+\gdef\dlqq{{\setbox\tw@=\hbox{,}\setbox\z@=\hbox{''}%
+ \dimen\z@=\ht\z@ \advance\dimen\z@-\ht\tw@
+ \setbox\z@=\hbox{\lower\dimen\z@\box\z@}\ht\z@=\ht\tw@
+ \dp\z@=\dp\tw@ \box\z@\kern-.04em}}
+% \end{macrocode}
+%
+% The code lines are numbered within sections,
+% \begin{macrocode}
+%<*!user>
+\@addtoreset{CodelineNo}{section}
+\renewcommand\theCodelineNo{%
+ \reset@font\scriptsize\thesection.\arabic{CodelineNo}}
+% \end{macrocode}
+% which should also be visible in the index; hence this
+% redefinition of a macro from \file{doc.sty}.
+% \begin{macrocode}
+\renewcommand\codeline@wrindex[1]{\if@filesw
+ \immediate\write\@indexfile
+ {\string\indexentry{#1}%
+ {\number\c@section.\number\c@CodelineNo}}\fi}
+% \end{macrocode}
+%
+% The glossary environment is used or the change log, but its
+% definition needs changing for this document.
+% \begin{macrocode}
+\renewenvironment{theglossary}{%
+ \glossary@prologue%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {}
+%</!user>
+\makeatother
+% \end{macrocode}
+%
+% A few shorthands used in the documentation
+% \changes{babel~3.5g}{1996/07/06}{Added definition of \cs{Babel}}
+% \begin{macrocode}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Babel{\textsf{Babel}}
+\newcommand*\m[1]{\mbox{$\langle$\it#1\/$\rangle$}}
+\newcommand*\langvar{\m{lang}}
+% \end{macrocode}
+%
+% Some more definitions needed in the documentation.
+% \begin{macrocode}
+%\newcommand*\note[1]{\textbf{#1}}
+\newcommand*\note[1]{}
+\newcommand*\bsl{\protect\bslash}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\Lenv[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\cls[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+\newcommand*\langdeffile[1]{%
+%<-user> \clearpage
+ \DocInput{#1}}
+% \end{macrocode}
+%
+% When a full index should be generated uncomment the line with
+% |\EnableCrossrefs|. Beware, processing may take some time.
+% Use |\DisableCrossrefs| when the index is ready.
+% \begin{macrocode}
+% \EnableCrossrefs
+\DisableCrossrefs
+% \end{macrocode}
+%
+% Inlude the change log.
+% \begin{macrocode}
+%<-user>\RecordChanges
+% \end{macrocode}
+% The index should use the linenumbers of the code.
+% \begin{macrocode}
+%<-user>\CodelineIndex
+% \end{macrocode}
+%
+% Set everything in |\MacroFont| instead of |\AltMacroFont|
+% \begin{macrocode}
+\setcounter{StandardModuleDepth}{1}
+% \end{macrocode}
+%
+% For the user guide we only want the description parts of all the
+% files.
+% \begin{macrocode}
+%<+user>\OnlyDescription
+% \end{macrocode}
+% Here starts the document
+% \begin{macrocode}
+\begin{document}
+\DocInput{babel.dtx}
+% \end{macrocode}
+%
+% All the language definition files.
+% \changes{babel~3.2e}{1992/07/07}{Added slovak}
+% \changes{babel~3.3}{1993/07/11}{Added catalan and galician}
+% \changes{babel~3.3}{1993/07/11}{Added turkish}
+% \changes{babel~3.4}{1994/02/28}{Added bahasa}
+% \changes{babel~3.5a}{1995/02/16}{Added breton, irish, scottish}
+% \changes{babel~3.5b}{1995/05/19}{Added lsorbian, usorbian}
+% \changes{babel~3.5c}{1995/06/14}{Changed the order of including the
+% language files somewhat (PR1652)}
+% \changes{babel~3.5g}{1996/07/06}{Added greek}
+% \changes{babel~3.6a}{1996/12/14}{Added welsh}
+%^^A \changes{babel~3.6i}{1997/02/07}{Added sanskrit}
+% \changes{babel~3.6i}{1997/02/22}{Added basque}
+^^A% \changes{babel~3.6i}{1997/02/22}{Added kannada}
+% \changes{babel~3.7a}{1997/05/21}{Added icelandic}
+% \changes{babel~3.7b}{1998/06/25}{Added Latin}
+% \changes{babel~3.7c}{1999/03/09}{Added ukrainian}
+% \changes{babel~3.7c}{1999/05/09}{Added hebrew and serbian}
+% \changes{babel~3.7e}{1999/11/22}{Added missing hebrew files}
+% \changes{babel~3.7f}{2000/09/21}{Added bulgarian}
+% \changes{babel~3.7f}{2000/09/26}{Added samin}
+% \changes{babel~3.8a}{2004/02/20}{Added interlingua}
+% \begin{macrocode}
+%<+user>\clearpage
+\langdeffile{esperanto.dtx}
+\langdeffile{interlingua.dtx}
+%
+\langdeffile{dutch.dtx}
+\langdeffile{english.dtx}
+\langdeffile{germanb.dtx}
+\langdeffile{ngermanb.dtx}
+%
+\langdeffile{breton.dtx}
+\langdeffile{welsh.dtx}
+\langdeffile{irish.dtx}
+\langdeffile{scottish.dtx}
+%
+\langdeffile{greek.dtx}
+%
+\langdeffile{frenchb.dtx}
+\langdeffile{italian.dtx}
+\langdeffile{latin.dtx}
+\langdeffile{portuges.dtx}
+\langdeffile{spanish.dtx}
+\langdeffile{catalan.dtx}
+\langdeffile{galician.dtx}
+\langdeffile{basque.dtx}
+\langdeffile{romanian.dtx}
+%
+\langdeffile{danish.dtx}
+\langdeffile{icelandic.dtx}
+\langdeffile{norsk.dtx}
+\langdeffile{swedish.dtx}
+\langdeffile{samin.dtx}
+%
+\langdeffile{finnish.dtx}
+\langdeffile{magyar.dtx}
+\langdeffile{estonian.dtx}
+%
+\langdeffile{croatian.dtx}
+\langdeffile{czech.dtx}
+\langdeffile{polish.dtx}
+\langdeffile{serbian.dtx}
+\langdeffile{slovak.dtx}
+\langdeffile{slovene.dtx}
+\langdeffile{russianb.dtx}
+\langdeffile{bulgarian.dtx}
+\langdeffile{ukraineb.dtx}
+%
+\langdeffile{lsorbian.dtx}
+\langdeffile{usorbian.dtx}
+\langdeffile{turkish.dtx}
+%
+\langdeffile{hebrew.dtx}
+\DocInput{hebinp.dtx}
+\DocInput{hebrew.fdd}
+\DocInput{heb209.dtx}
+\langdeffile{bahasa.dtx}
+%\langdeffile{sanskrit.dtx}
+%\langdeffile{kannada.dtx}
+%\langdeffile{nagari.dtx}
+%\langdeffile{tamil.dtx}
+\clearpage
+\DocInput{bbplain.dtx}
+% \end{macrocode}
+% Finally print the index and change log (not for the user guide).
+% \begin{macrocode}
+%<*!user>
+\clearpage
+\def\filename{index}
+\PrintIndex
+\clearpage
+\def\filename{changes}
+\PrintChanges
+%</!user>
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \Finale
+%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
+
diff --git a/Master/texmf-dist/source/generic/babel/babel.ins b/Master/texmf-dist/source/generic/babel/babel.ins
new file mode 100644
index 00000000000..c4680ba4555
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/babel.ins
@@ -0,0 +1,250 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+%% Copyright 2005 Johannes L. Braams
+%%
+%% This file is part of the `babel' system.
+%%
+\def\filedate{2004/02/20}
+\def\batchfile{babel.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\ifx\askonceonly\undefined
+ \let\OriginalAsk\Ask
+ \def\askonceonly{%
+ \def\Ask##1##2{%
+ \OriginalAsk{##1}{##2}%
+ \global\let\Ask\OriginalAsk
+ \Ask\noprompt{%
+ By default you will be asked this question for every file.^^J%
+ If you enter `y' now,^^J%
+ I will asssume `y' for all future questions^^J%
+ without prompting.}%
+ \ifx\y\noprompt\let\noprompt\yes\fi
+ \ifx\yes\noprompt\gdef\Ask####1####2{\def####1{y}}\fi}}
+ }
+\fi
+%% This is the preamble that will be placed on
+%% unpacked files
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+\askonceonly
+%
+% Make some arrangements to use docstrip files in subdirectories
+% unchanged...
+% To do this I need to insert a path in front of the source file
+% name, for this purpose I need to save the definition of an
+% internal docstrip macro:
+\let\ds@@from\@from
+%
+% Then it is convenient to have a special command to load docstrip
+% files in subdirectories, it takes the directory path in the first
+% argument, the name of the file in the second:
+\def\BblInstallSubDir#1#2{%
+ \def\@from##1{\ds@@from{#1/##1}}
+ \batchinput{#1/#2.ins}
+ \let\@from\ds@@from}
+%
+% When a flat distribution is used a much simpler command
+% is needed.
+\def\BblInstallFlat#1#2{%
+ \batchinput{#2.ins}}
+
+% Now choose which installation to use.
+\let\BblInstall\BblInstallFlat %% For now...
+
+\usepreamble\mainpreamble
+\usedir{tex/generic/babel}
+%
+% First produce the base files for the babel system
+%
+\BblInstall{base}{base}
+%
+% Languages have their own subdirectory
+%
+\BblInstall{bahasa}{bahasa}
+\BblInstall{basque}{basque}
+\BblInstall{breton}{breton}
+\BblInstall{bulgarian}{bulgarian}
+\BblInstall{catalan}{catalan}
+\BblInstall{croatian}{croatian}
+\BblInstall{cyrillic}{russianb}
+\BblInstall{cyrillic}{ukraineb}
+\BblInstall{czech}{czech}
+\BblInstall{danish}{danish}
+\BblInstall{dutch}{dutch}
+\BblInstall{english}{english}
+\BblInstall{esperanto}{esperanto}
+\BblInstall{estonian}{estonian}
+\BblInstall{finnish}{finnish}
+\BblInstall{frenchb}{frenchb}
+\BblInstall{galician}{galician}
+\BblInstall{german}{german}
+\BblInstall{greek}{greek}
+\BblInstall{hebrew}{hebrew}
+\BblInstall{icelandic}{icelandic}
+\BblInstall{interlingua}{interlingua}
+\BblInstall{irish}{irish}
+\BblInstall{italian}{italian}
+%\BblInstall{kannada}{kannada}
+\BblInstall{latin}{latin}
+\BblInstall{magyar}{magyar}
+%\BblInstall{nagari}{nagari}
+\BblInstall{norsk}{norsk}
+\BblInstall{polish}{polish}
+\BblInstall{portuges}{portuges}
+\BblInstall{romanian}{romanian}
+%\BblInstall{tamil}{tamil}
+\BblInstall{samin}{samin}
+%\BblInstall{sanskrit}{sanskrit}
+\BblInstall{scottish}{scottish}
+\BblInstall{serbian}{serbian}
+\BblInstall{slovak}{slovak}
+\BblInstall{slovene}{slovene}
+\BblInstall{sorbian}{sorbian}
+\BblInstall{spanish}{spanish}
+\BblInstall{swedish}{swedish}
+\BblInstall{turkish}{turkish}
+\BblInstall{welsh}{welsh}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move all the files}
+\Msg{* with names ending in .ldf, .sty, .def or .fd into a}
+\Msg{* directory searched by TeX}
+\Msg{*}
+\Msg{* For making a format the following files have to be in a}
+\Msg{* directory which is searched by IniTeX:}
+\Msg{* \space\space hyphen.cfg}
+\Msg{* \space\space language.dat}
+\Msg{* \space\space and files with hyphenation patterns}
+\Msg{*}
+\Msg{* To produce source listings you can run files with names}
+\Msg{* ending in .dtx and/or .drv through LaTeX}
+\Msg{*}
+\Msg{* To produce the complete source listing MakeIndex needs to be}
+\Msg{* able to find the following files}
+\Msg{* \space\space bbind.ist}
+\Msg{* \space\space bbglo.ist}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{*}
+\Msg{***********************************************************}
+
+
diff --git a/Master/texmf-dist/source/generic/babel/bahasa.dtx b/Master/texmf-dist/source/generic/babel/bahasa.dtx
new file mode 100644
index 00000000000..c679c2e4a33
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bahasa.dtx
@@ -0,0 +1,243 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{86}
+%\iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{bahasa.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{bahasa}
+%\fi
+%\ProvidesFile{bahasa.dtx}
+ [2005/03/29 v1.0i Bahasa support from the babel system]
+%\iffalse
+%% File `bahasa.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Bahasa Language Definition File
+%% Copyright (C) 1994 - 2005
+%% by J"org Knappen, (joerg.knappen at alpha.ntp.springer.de)
+% Terry Mart (mart at vkpmzd.kph.uni-mainz.de)
+% Institut f\"ur Kernphysik
+% Johannes Gutenberg-Universit\"at Mainz
+% D-55099 Mainz
+% Germany
+%
+%% Please report errors to: J"org Knappen
+%% knappen at alpha.ntp.springer.de
+%% J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the bahasa indonesia / bahasa melayu language definition
+% file. The original version of this file was written by Terry
+% Mart (mart@vkpmzd.kph.uni-mainz.de) and J"org Knappen
+% (knappen@vkpmzd.kph.uni-mainz.de).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{bahasa.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{bahasa.dtx}
+%
+% \changes{bahasa-0.9c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{bahasa-1.0d}{1996/07/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{bahasa-1.0e}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The Bahasa language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% bahasa indonesia / bahasa melayu language. Bahasa just means
+% `language' in bahasa indonesia / bahasa melayu. Since both
+% national versions of the language use the same writing, although
+% differing in pronounciation, this file can be used for both
+% languages.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{bahasa-1.0e}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{bahasa}\captionsbahasa
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{bahasa} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@bahasa| to see whether we have to do something here.
+%
+% \changes{bahasa-0.9c}{1994/06/26}{Now use \cs{@patterns} to produce
+% the warning}
+% \begin{macrocode}
+\ifx\l@bahasa\@undefined
+ \@nopatterns{Bahasa}
+ \adddialect\l@bahasa0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Bahasa language.
+%
+% \begin{macro}{\captionsbahasa}
+% The macro |\captionsbahasa| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{bahasa-1.0b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{bahasa-1.0d}{1996/07/09}{Replaced `Proof' by `Bukti'
+% (PR2214)}
+% \changes{bahasa-1.0h}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{bahasa-1.0i}{2003/11/17}{Inserted translation for Glossary}
+% \begin{macrocode}
+\addto\captionsbahasa{%
+ \def\prefacename{Pendahuluan}%
+ \def\refname{Pustaka}%
+ \def\abstractname{Ringkasan}% (sometime it's called 'intisari'
+ % or 'ikhtisar')
+ \def\bibname{Bibliografi}%
+ \def\chaptername{Bab}%
+ \def\appendixname{Lampiran}%
+ \def\contentsname{Daftar Isi}%
+ \def\listfigurename{Daftar Gambar}%
+ \def\listtablename{Daftar Tabel}%
+ \def\indexname{Indeks}%
+ \def\figurename{Gambar}%
+ \def\tablename{Tabel}%
+ \def\partname{Bagian}%
+% Subject: Subyek
+% From: Dari
+ \def\enclname{Lampiran}%
+ \def\ccname{cc}%
+ \def\headtoname{Kepada}%
+ \def\pagename{Halaman}%
+% Notes (Endnotes): Catatan
+ \def\seename{lihat}%
+ \def\alsoname{lihat juga}%
+ \def\proofname{Bukti}%
+ \def\glossaryname{Daftar Istilah}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datebahasa}
+% The macro |\datebahasa| redefines the command |\today| to produce
+% Bahasa dates.
+% \changes{bahasa-1.0f}{1997/10/01}{Use \cs{edef} to define \cs{today}}
+% \changes{bahasa~1.0f}{1998/03/28}{use \cs{def} instead of \cs{edef}
+% to save memory}
+% \changes{bahasa-1.0g}{1999/03/12}{Februari should be spelled as
+% Pebruari}
+% \begin{macrocode}
+\def\datebahasa{%
+ \def\today{\number\day~\ifcase\month\or
+ Januari\or Pebruari\or Maret\or April\or Mei\or Juni\or
+ Juli\or Agustus\or September\or Oktober\or Nopember\or Desember\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\extrasbahasa}
+% \begin{macro}{\noextrasbahasa}
+% The macro |\extrasbahasa| will perform all the extra definitions
+% needed for the Bahasa language. The macro |\extrasbahasa| is used
+% to cancel the actions of |\extrasbahasa|. For the moment these
+% macros are empty but they are defined for compatibility with the
+% other language definition files.
+%
+% \begin{macrocode}
+\addto\extrasbahasa{}
+\addto\noextrasbahasa{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bahasahyphenmins}
+% The bahasa hyphenation patterns should be used with
+% |\lefthyphenmin| set to~2 and |\righthyphenmin| set to~2.
+% \changes{bahasa-1.0e}{1996/08/07}{use \cs{bahasahyphenmins} to store
+% the correct values}
+% \changes{bahasa-1.0h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{bahasa-1.0e}{1996/11/02}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{bahasa}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/bahasa.ins b/Master/texmf-dist/source/generic/babel/bahasa.ins
new file mode 100644
index 00000000000..a444a015e17
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bahasa.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{bahasa.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{bahasa.ldf}{\from{bahasa.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/base.ins b/Master/texmf-dist/source/generic/babel/base.ins
new file mode 100644
index 00000000000..7f13287fd29
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/base.ins
@@ -0,0 +1,299 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+%% Copyright 2004 Johannes L. Braams
+%%
+%% This file is part of the `babel' system.
+%%
+%% You are allowed to distribute this file together with all files
+%% mentioned in manifest.bbl.
+%%
+%% You are not allowed to modify its contents.
+%%
+\def\filedate{2004/02/20}
+\def\batchfile{base.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+% The following command will be added to dostrip in the next LaTeX
+% release ...
+\ifx\askonceonly\undefined
+ \let\OriginalAsk\Ask
+ \def\askonceonly{%
+ \def\Ask##1##2{%
+ \OriginalAsk{##1}{##2}%
+ \global\let\Ask\OriginalAsk
+ \Ask\noprompt{%
+ By default you will be asked this question for every file.^^J%
+ If you enter `y' now,^^J%
+ I will asssume `y' for all future questions^^J%
+ without prompting.}%
+ \ifx\y\noprompt\let\noprompt\yes\fi
+ \ifx\yes\noprompt\gdef\Ask####1####2{\def####1{y}}\fi}}
+ }
+\fi
+%% This is the preamble that will be placed on
+%% unpacked files
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\declarepreamble\drvpreamble
+
+This file was generated from file(s) of the Babel system.
+---------------------------------------------------------
+
+Copyright (C) 2004 Johannes Braams. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+\declarepreamble\istpreamble
+This file was generated from file(s) of the Babel system.
+---------------------------------------------------------
+
+Copyright (C) 2004 Johannes Braams. All rights reserved.
+
+This file is a style file for the MakeIndex program
+
+\endpreamble
+
+\declarepostamble\istpost
+\endpostamble
+
+\keepsilent
+\askonceonly
+
+\usepreamble\mainpreamble
+\usedir{tex/generic/babel}
+
+\generate{\file{babel.sty}{\from{babel.dtx}{package}}
+ \file{babel.def}{\from{babel.dtx}{core}}
+ \file{switch.def}{\from{babel.dtx}{kernel}}
+ \file{hyphen.cfg}{\from{babel.dtx}{kernel,patterns}}
+ }
+% Support for plain users
+\generate{\file{plain.def}{\from{bbplain.dtx}{code}}
+ \file{bplain.tex}{\from{bbplain.dtx}{bplain}}
+ \file{blplain.tex}{\from{bbplain.dtx}{blplain}}
+ }
+
+% compatibility files
+
+\usepreamble\mainpreamble
+
+\def\compatfile#1{\file{#1.sty}{\from{bbcompat.dtx}{#1}}}
+
+\generate{%
+ \compatfile{esperanto}
+ \compatfile{afrikaans}
+ \compatfile{dutch}
+ \compatfile{american}
+ \compatfile{british}
+ \compatfile{english}
+ \compatfile{UKenglish}
+ \compatfile{USenglish}
+ \compatfile{germanb}
+ \compatfile{austrian}
+ \compatfile{ngermanb}
+ \compatfile{naustrian}
+ \compatfile{irish}
+ \compatfile{scottish}
+ \compatfile{welsh}
+ \compatfile{breton}
+ }
+\generate{%
+ \compatfile{francais}
+ \compatfile{italian}
+ \compatfile{portuges}
+ \compatfile{spanish}
+ \compatfile{catalan}
+ \compatfile{galician}
+ \compatfile{danish}
+ \compatfile{norsk}
+ \compatfile{swedish}
+ \compatfile{finnish}
+ \compatfile{magyar}
+ \compatfile{greek}
+ \compatfile{croatian}
+ \compatfile{czech}
+ \compatfile{slovak}
+ \compatfile{polish}
+ }
+\generate{%
+ \compatfile{estonian}
+ \compatfile{romanian}
+ \compatfile{slovene}
+ \compatfile{russianb}
+ \compatfile{ukraineb}
+ \compatfile{turkish}
+ \compatfile{lsorbian}
+ \compatfile{usorbian}
+ \compatfile{bahasa}
+ \compatfile{hebrew}
+ %\compatfile{sanskrit}
+ \compatfile{basque}
+ \compatfile{latin}
+ \compatfile{icelandic}
+ \compatfile{serbian}
+ \compatfile{bulgarian}
+ }
+\generate{%
+ \compatfile{samin}
+ \compatfile{interlingua}
+ }
+
+% driver files
+
+\usepreamble\drvpreamble
+
+\generate{\file{babel.drv}{\from{babel.dtx}{driver}}
+ \file{user.drv}{\from{babel.dtx}{driver,user}}}
+
+% MakeIndex style files
+
+\usepreamble\istpreamble
+\usepostamble\istpost
+
+\generate{\file{bbind.ist}{\from{bbidxglo.dtx}{idx}}
+ \file{bbglo.ist}{\from{bbidxglo.dtx}{glo}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move all the files}
+\Msg{* with names ending in .ldf, .sty, .def or .fd into a}
+\Msg{* directory searched by TeX}
+\Msg{*}
+\Msg{* For making a format the following files have to be in a}
+\Msg{* directory which is searched by IniTeX:}
+\Msg{* \space\space hyphen.cfg}
+\Msg{* \space\space language.dat}
+\Msg{* \space\space and files with hyphenation patterns}
+\Msg{*}
+\Msg{* To produce source listings you can run files with names}
+\Msg{* ending in .dtx and/or .drv through LaTeX}
+\Msg{*}
+\Msg{* To produce the complete source listing MakeIndex needs to be}
+\Msg{* able to find the following files}
+\Msg{* \space\space bbind.ist}
+\Msg{* \space\space bbglo.ist}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{*}
+\Msg{***********************************************************}
+
+
diff --git a/Master/texmf-dist/source/generic/babel/basque.dtx b/Master/texmf-dist/source/generic/babel/basque.dtx
new file mode 100644
index 00000000000..33789ccdfd4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/basque.dtx
@@ -0,0 +1,390 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{193}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{basque.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{basque}
+%\fi
+%\ProvidesFile{basque.dtx}
+ [2005/03/29 v1.0f Basque support from the babel system]
+%\iffalse
+%% File `Basque.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Basque Language Definition File
+%% Copyright (C) 1997 - 2005
+%% by Juan M. Aguirregabiria
+% The University of the Basque Country
+% Dept. of Theoretical Physics
+% Apdo. 644
+% E-48080 Bilbao
+% Spain
+% tel: +34 946 012 593
+% fax: +34 944 648 500
+% e-mail: wtpagagj at lg.ehu.es
+% WWW: http://tp.lc.ehu.es/jma.html
+% based on the
+% Spanish Language Definition File
+% Copyright (C) 1991 - 1998
+% by Julio Sanchez
+% GMV, SA
+% c/ Isaac Newton 11
+% PTM - Tres Cantos
+% E-28760 Madrid
+% Spain
+% tel: +34 1 807 21 85
+% fax +34 1 807 21 99
+% jsanchez at gmv.es
+%
+% Acknowledgements: I am indebted to Zunbeltz Izaola,
+% who suggested the use of \discretionary in "-
+%
+%% Please report errors to: Juan M. Aguirregabiria <wtpagagj at lg.ehu.es>
+%% (or J.L. Braams <babel at braams.cistron.nl>)
+%
+% This file is part of the babel system, it provides the source
+% code for the basque language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{basque.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{basque.dtx}
+%
+% \section{The Basque language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author is Juan M. Aguirregabiria,
+% (\texttt{wtpagagj@lg.ehu.es}) and is based on the Spanish file
+% by Julio S\'anchez,
+% (\texttt{jsanchez@gmv.es}).} defines all the language definition
+% macro's for the Basque language.
+%
+% For this language the characters |~| and |"| are made
+% active. In table~\ref{tab:basque-quote} an overview is given of
+% their purpose.
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word. \\
+% |"<| & for French left double quotes (similar to $<<$).\\
+% |">| & for French right double quotes (similar to $>>$).\\
+% |~n| & a n with tilde. Works for uppercase too.
+% \end{tabular}
+% \caption{The extra definitions made by \file{basque.ldf}}
+% \label{tab:basque-quote}
+% \end{table}
+% These active accent characters behave according to their original
+% definitions if not followed by one of the characters indicated in
+% that table.
+%
+% \changes{basque-1.0f}{2002/01/07}{Changed url's for the patterns
+% file}
+% This option includes support for working with extended, 8-bit
+% fonts, if available. Support is based on
+% providing an appropriate definition for the accent macros on
+% entry to the Basque language. This is automatically done by
+% \LaTeXe\ or NFSS2. If T1 encoding is chosen, and provided that
+% adequate hyphenation patterns\footnote{One source for such
+% patterns is the archive at \texttt{tp.lc.ehu.es} that can be
+% accessed by anonymous FTP or in
+% \texttt{http://tp.lc.ehu.es/jma/basque.html}} are available.
+% The easiest way to use the new encoding with \LaTeXe{} is
+% to load the package \texttt{t1enc} with |\usepackage|. This must
+% be done before loading \babel.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{basque}\captionsbasque
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{basque} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@basque| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@basque\@undefined
+ \@nopatterns{Basque}
+ \adddialect\l@basque0
+\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Basque language.
+%
+% \begin{macro}{\captionsbasque}
+% The macro |\captionsbasque| defines all strings used in
+% the four standard documentclasses provided with \LaTeX.
+% \changes{basque-1.0e}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{basque-1.0f}{2002/01/07}{Added translation for Glossary}
+% \begin{macrocode}
+\addto\captionsbasque{%
+ \def\prefacename{Hitzaurrea}%
+ \def\refname{Erreferentziak}%
+ \def\abstractname{Laburpena}%
+ \def\bibname{Bibliografia}%
+ \def\chaptername{Kapitulua}%
+ \def\appendixname{Eranskina}%
+ \def\contentsname{Gaien Aurkibidea}%
+ \def\listfigurename{Irudien Zerrenda}%
+ \def\listtablename{Taulen Zerrenda}%
+ \def\indexname{Kontzeptuen Aurkibidea}%
+ \def\figurename{Irudia}%
+ \def\tablename{Taula}%
+ \def\partname{Atala}%
+ \def\enclname{Erantsia}%
+ \def\ccname{Kopia}%
+ \def\headtoname{Nori}%
+ \def\pagename{Orria}%
+ \def\seename{Ikusi}%
+ \def\alsoname{Ikusi, halaber}%
+ \def\proofname{Frogapena}%
+ \def\glossaryname{Glosarioa}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datebasque}
+% The macro |\datebasque| redefines the command |\today| to
+% produce Basque
+% \changes{basque-1.0b}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{basque-1.0b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \changes{basque-1.0c}{1999/11/22}{fixed typo in April's name}
+% \begin{macrocode}
+\def\datebasque{%
+ \def\today{\number\year.eko\space\ifcase\month\or
+ urtarrilaren\or otsailaren\or martxoaren\or apirilaren\or
+ maiatzaren\or ekainaren\or uztailaren\or abuztuaren\or
+ irailaren\or urriaren\or azaroaren\or
+ abenduaren\fi~\number\day}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasbasque}
+% \begin{macro}{\noextrasbasque}
+% The macro |\extrasbasque| will perform all the extra definitions
+% needed for the Basque language. The macro |\noextrasbasque| is
+% used to cancel the actions of |\extrasbasque|. For Basque, some
+% characters are made active or are redefined. In particular, the
+% \texttt{"} character and the |~| character receive new
+% meanings. Therefore these characters have to be treated as
+% `special' characters.
+%
+% \begin{macrocode}
+\addto\extrasbasque{\languageshorthands{basque}}
+\initiate@active@char{"}
+\initiate@active@char{~}
+\addto\extrasbasque{%
+ \bbl@activate{"}%
+ \bbl@activate{~}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{basque-1.0d}{1999/12/16}{Deactivate shorthands ouside of
+% Basque}
+% \begin{macrocode}
+\addto\noextrasbasque{
+ \bbl@deactivate{"}\bbl@deactivate{~}}
+% \end{macrocode}
+%
+% Apart from the active characters some other macros get a new
+% definition. Therefore we store the current one to be able to
+% restore them later.
+% \begin{macrocode}
+\addto\extrasbasque{%
+ \babel@save\"%
+ \babel@save\~%
+ \def\"{\protect\@umlaut}%
+ \def\~{\protect\@tilde}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\basquehyphenmins}
+% Basque hyphenation uses |\lefthyphenmin| and |\righthyphenmin|
+% both set to~2.
+% \changes{basque-1.0e}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dieresia}
+% \begin{macro}{\texttilde}
+% The original definition of |\"| is stored as |\dieresia|, because
+% the we do not know what is its definition, since it depends on
+% the encoding we are using or on special macros that the user
+% might have loaded. The expansion of the macro might use the \TeX\
+% |\accent| primitive using some particular accent that the font
+% provides or might check if a combined accent exists in the font.
+% These two cases happen with respectively OT1 and T1 encodings.
+% For this reason we save the definition of |\"| and use that in
+% the definition of other macros. We do likewise for |\'| and
+% |\~|. The present coding of this option file is incorrect in that
+% it can break when the encoding changes. We do not use
+% |\tilde| as the macro name because it is already defined as
+% |\mathaccent|.
+% \begin{macrocode}
+\let\dieresia\"
+\let\texttilde\~
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@umlaut}
+% \begin{macro}{\@tilde}
+% We check the encoding and if not using T1, we make the accents
+% expand but enabling hyphenation beyond the accent. If this is the
+% case, not all break positions will be found in words that contain
+% accents, but this is a limitation in \TeX. An unsolved problem
+% here is that the encoding can change at any time. The definitions
+% below are made in such a way that a change between two 256-char
+% encodings are supported, but changes between a 128-char and a
+% 256-char encoding are not properly supported. We check if T1 is
+% in use. If not, we will give a warning and proceed redefining the
+% accent macros so that \TeX{} at least finds the breaks that are
+% not too close to the accent. The warning will only be printed to
+% the log file.
+% \begin{macrocode}
+\ifx\DeclareFontShape\@undefined
+ \wlog{Warning: You are using an old LaTeX}
+ \wlog{Some word breaks will not be found.}
+ \def\@umlaut#1{\allowhyphens\dieresia{#1}\allowhyphens}
+ \def\@tilde#1{\allowhyphens\texttilde{#1}\allowhyphens}
+\else
+ \edef\bbl@next{T1}
+ \ifx\f@encoding\bbl@next
+ \let\@umlaut\dieresia
+ \let\@tilde\texttilde
+ \else
+ \wlog{Warning: You are using encoding \f@encoding\space
+ instead of T1.}
+ \wlog{Some word breaks will not be found.}
+ \def\@umlaut#1{\allowhyphens\dieresia{#1}\allowhyphens}
+ \def\@tilde#1{\allowhyphens\texttilde{#1}\allowhyphens}
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Now we can define our shorthands: the french quotes,
+% \changes{basque-1.0b}{1997/04/03}{Removed empty groups after
+% guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{basque}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{basque}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% ordinals\footnote{The code for the ordinals was taken from the
+% answer provided by Raymond Chen
+% (\texttt{raymond@math.berkeley.edu}) to a question by Joseph Gil
+% (\texttt{yogi@cs.ubc.ca}) in \texttt{comp.text.tex}.},
+% \begin{macrocode}
+ \declare@shorthand{basque}{''}{%
+ \textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
+% \end{macrocode}
+% tildes,
+% \begin{macrocode}
+\declare@shorthand{basque}{~n}{\textormath{\~n}{\@tilde n}}
+\declare@shorthand{basque}{~N}{\textormath{\~N}{\@tilde N}}
+% \end{macrocode}
+% and some additional commands.
+%
+% The shorthand |"-| should be used in places where a word contains
+% an explictit hyphenation character. According to the Academy of
+% the Basque language, when a word break occurs at an explicit
+% hyphen it must appear \emph{both} at the end of the first line
+% \emph{and} at the beginning of the second line.
+% \changes{changes-1.0f}{2002/01/07}{The hyphen char needs to appear
+% at the beginning of the line as well.}
+% \begin{macrocode}
+\declare@shorthand{basque}{"-}{%
+ \nobreak\discretionary{-}{-}{-}\bbl@allowhyphens}
+\declare@shorthand{basque}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{basque}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/basque.ins b/Master/texmf-dist/source/generic/babel/basque.ins
new file mode 100644
index 00000000000..ccebb561bae
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/basque.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{basque.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{basque.ldf}{\from{basque.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/bbcompat.dtx b/Master/texmf-dist/source/generic/babel/bbcompat.dtx
new file mode 100644
index 00000000000..b90991e12fb
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bbcompat.dtx
@@ -0,0 +1,261 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{251}
+%
+% \iffalse
+%<*dtx>
+\ProvidesFile{bbcompat.dtx}[2004/02/19 v1.2h]
+%</dtx>
+%
+%% File 'bbcompat.dtx'
+%% Copyright (C) 1989 -- 2004 by Johannes Braams,
+%% TeXniek
+%% all rights reserved.
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{bbcompat.dtx}
+\end{document}
+%</filedriver>
+% \fi
+%
+% \GetFileInfo{bbcompat.dtx}
+% \StopEventually{}
+%
+% \changes{bbcompat-1.2}{1996/11/02}{Added the check for \cs{LdfInit}}
+% \changes{bbcompat-1.2d}{1999/04/12}{When these files are read by a
+% non-babel plain format the @ has still category code `other' so
+% can't use \cd{@undefined}}
+% \begin{macrocode}
+\ifx\LdfInit\undefined
+ \def\LdfInit{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \LdfInit}
+\fi
+% \end{macrocode}
+% It seems that these files, although meant for compatibility with
+% \file{plain.tex} are also used as packages in \LaTeXe. The
+% disadvantage of that is that a number of compatibility measures
+% with other packages that are part of \file{babel.sty} are not
+% present. Therefore we issue an error and then load
+% \file{babel.def} to let the user continue processing his
+% document (at his own risk).
+%
+% First we determine whether we are loaded from \LaTeX\ by checking
+% whether |\PackageError| is defined.
+% \begin{macrocode}
+\ifx\PackageError\undefined
+% \end{macrocode}
+% In this case we are not being loaded by \LaTeXe, so just define
+% |\ProvidesLanguage| to prevent an error when the \file{.ldf} file
+% is loaded.
+% \begin{macrocode}
+ \def\ProvidesLanguage#1[#2 #3 #4]{%
+ \wlog{Language: #1 #4 #3 <#2>}}%
+\else
+% \end{macrocode}
+% Now we define an error message which `deletes' itself from
+% memory.
+% \begin{macrocode}
+ \def\bblstyerror{%
+ \PackageError{babel}%
+ {You have used an old interface to call babel\MessageBreak
+ You may expect compatibility problems wit other packages}%
+ {You could proceed but don't complain if you run into errors}%
+ \let\bblstyerror\@undefined
+ }
+% \end{macrocode}
+% Now we can issue the error, it should appear when these files are
+% loaded from \LaTeXe, with \emph{or} without \file{hyphen.cfg}
+% preloaded in the format.
+% \changes{bbcompat-1.2e}{1999/04/20}{Added a check for
+% \cs{ProvidesLanguage}}
+% \begin{macrocode}
+ \ifx\ProvidesLanguage\undefined
+% \end{macrocode}
+% In this case \file{hyphen.cfg} wasn't loaded in the \LaTeXe\
+% format so we also need to provide a suitable definition for
+% |\ProvidesLanguage|.
+% \begin{macrocode}
+ \bblstyerror
+ \def\ProvidesLanguage{%
+ \chardef\atcatcode=\catcode`\@
+ \catcode`\@=11\relax
+ \input babel.def\relax
+ \catcode`\@=\atcatcode \let\atcatcode\relax
+ \ProvidesLanguage}
+% \end{macrocode}
+% When we end up here, \file{hyphen.cfg} was loaded into the
+% format; we only need to issue the error from \LaTeXe.
+% \begin{macrocode}
+ \else
+ \bblstyerror
+ \fi
+\fi
+% \end{macrocode}
+% \changes{bbcompat-1.2}{1996/07/13}{Added \file{.sty} files and
+% definition of \cs{CurrentOption} for language definition files
+% that are loaded by more than one option.}
+% \changes{bbcompat-1.2}{1996/12/14}{Added \file{welsh.sty}}
+% \changes{bbcompat-1.2b}{1997/02/07}{Added \file{sanskrit.sty}}
+% \changes{bbcompat-1.2c}{1998/03/24}{Added \file{hebrew.sty}}
+% \changes{bbcompat-1.2d}{1999/03/09}{Added \file{ukraineb.sty}}
+% \changes{bbcompat-1.2d}{1999/04/10}{Added \file{ngerman.sty} and
+% \file{naustrian.sty}}
+% \changes{bbcompat-1.2f}{2000/09/26}{Added \file{icelandic.sty},
+% \file{bulgarian.sty} and \file{samin.sty}}
+% \changes{bbcompat-1.2f}{2000/09/27}{Define \cs{CurrentOption} in
+% each file}
+% \changes{bbcompat-1.2g}{2001/01/19}{Added code for usenglish and
+% ukenglish.sty}
+% \changes{bbcompat-1.2h}{2003/11/13}{Added \file{interlingua.sty}}
+% \begin{macrocode}
+%<+american>\def\CurrentOption{american}
+%<+USenglish>\def\CurrentOption{USenglish}
+%<+british>\def\CurrentOption{british}
+%<+english>\def\CurrentOption{english}
+%<+UKenglish>\def\CurrentOption{UKenglish}
+%<american|british|english|UKenglish|USenglish>\input english.ldf\relax
+%<+bahasa>\def\CurrentOption{bahasa}}
+%<+bahasa>\input bahasa.ldf\relax
+%<+breton>\def\CurrentOption{breton}
+%<+breton>\input breton.ldf\relax
+%<+bulgarian>\def\CurrentOption{bulgarian}
+%<+bulgarian>\input bulgarian.ldf\relax
+%<+catalan>\def\CurrentOption{catalan}
+%<+catalan>\input catalan.ldf\relax
+%<+croatian>\def\CurrentOption{croatian}
+%<+croatian>\input croatian.ldf\relax
+%<+czech>\def\CurrentOption{czech}
+%<+czech>\input czech.ldf\relax
+%<+danish>\def\CurrentOption{danish}
+%<+danish>\input danish.ldf\relax
+%<+afrikaans>\def\CurrentOption{afrikaans}
+%<+dutch>\def\CurrentOption{dutch}
+%<+afrikaans|dutch>\input dutch.ldf\relax
+%<+esperanto>\def\CurrentOption{esperanto}
+%<+esperanto>\input esperanto.ldf\relax
+%<+estonian>\def\CurrentOption{estonian}
+%<+estonian>\input estonian.ldf\relax
+%<+finnish>\def\CurrentOption{finnish}
+%<+finnish>\input finnish.ldf\relax
+%<+francais>\def\CurrentOption{francais}
+%<+french>\def\CurrentOption{french}
+%<+francais|french>\input frenchb.ldf\relax
+%<+galician>\def\CurrentOption{galician}
+%<+galician>\input galician.ldf\relax
+%<+austrian>\def\CurrentOption{austrian}
+%<+german>\def\CurrentOption{german}
+%<+germanb>\def\CurrentOption{german}
+%<+austrian|german|germanb>\input germanb.ldf\relax
+%<+naustrian>\def\CurrentOption{naustrian}
+%<+ngerman>\def\CurrentOption{ngerman}
+%<+naustrian|ngerman>\input ngermanb.ldf\relax
+%<+greek>\def\CurrentOption{greek}
+%<+greek>\input greek.ldf\relax
+%<+icelandic>\def\CurrentOption{icelandic}
+%<+icelandic>\input icelandic.ldf\relax
+%<+interlingua>\def\CurrentOption{interlingua}
+%<+interlingua>\input interlingua.ldf\relax
+%<+irish>\def\CurrentOption{irish}
+%<+irish>\input irish.ldf\relax
+%<+italian>\def\CurrentOption{italian}
+%<+italian>\input italian.ldf\relax
+%<+lsorbian>\def\CurrentOption{lsorbian}
+%<+lsorbian>\input lsorbian.ldf\relax
+%<+magyar>\def\CurrentOption{magyar}
+%<+hungarian>\def\CurrentOption{hungarian}
+%<+magyar|hungarian>\input magyar.ldf\relax
+%<+norsk>\def\CurrentOption{norsk}
+%<+nynorsk>\def\CurrentOption{nynorsk}
+%<+norsk|nynorsk>\input norsk.ldf\relax
+%<+polish>\def\CurrentOption{polish}
+%<+polish>\input polish.ldf\relax
+%<+portuges>\def\CurrentOption{portuges}
+%<+portuguese>\def\CurrentOption{portuguese}
+%<+brazil>\def\CurrentOption{brazil}
+%<+brazilian>\def\CurrentOption{brazilian}
+%<+portuges|portuguese|brazil|brazilian>\input portuges.ldf\relax
+%<+romanian>\def\CurrentOption{romanian}
+%<+romanian>\input romanian.ldf\relax
+%<+russianb>\def\CurrentOption{russianb}
+%<+russianb>\input russianb.ldf\relax
+%<+ukraineb>\def\CurrentOption{ukraineb}
+%<+ukraineb>\input ukraineb.ldf\relax
+%<+samin>\def\CurrentOption{samin}
+%<+samin>\input samin.ldf\relax
+%<+sanskrit>\def\CurrentOption{sanskrit}
+%<+sanskrit>\input sanskrit.ldf\relax
+%<+scottish>\def\CurrentOption{scottish}
+%<+scottish>\input scottish.ldf\relax
+%<+slovak>\def\CurrentOption{slovak}
+%<+slovak>\input slovak.ldf\relax
+%<+slovene>\def\CurrentOption{slovene}
+%<+slovene>\input slovene.ldf\relax
+%<+spanish>\def\CurrentOption{spanish}
+%<+spanish>\input spanish.ldf\relax
+%<+swedish>\def\CurrentOption{swedish}
+%<+swedish>\input swedish.ldf\relax
+%<+turkish>\def\CurrentOption{turkish}
+%<+turkish>\input turkish.ldf\relax
+%<+usorbian>\def\CurrentOption{usorbian}
+%<+usorbian>\input usorbian.ldf\relax
+%<+welsh>\def\CurrentOption{welsh}
+%<+welsh>\input welsh.ldf\relax
+%<+hebrew>\def\CurrentOption{hebrew}
+%<+hebrew>\input rlbabel.def\input hebrew.ldf\relax
+% \end{macrocode}
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/bbidxglo.dtx b/Master/texmf-dist/source/generic/babel/bbidxglo.dtx
new file mode 100644
index 00000000000..f58e44890a3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bbidxglo.dtx
@@ -0,0 +1,124 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{66}
+%
+% \iffalse
+%
+% \begin{macrocode}
+%<*driver>
+\ProvidesFile{bbidxglo.drv}[2004/02/19 v1.0b]
+\documentclass{ltxdoc}
+\GetFileInfo{bbidxglo.drv}
+\newcommand{\babel}{\textsf{babel}}
+\newcommand{\mkidx}{\texttt{MakeIndex}}
+\newcommand{\file}[1]{\texttt{#1}}
+\newcommand{\Lopt}[1]{\textsf{#1}}
+\begin{document}
+\DocInput{bbidxglo.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+% \title{Generating the index and chage log for the Babel system}
+% \author{Johannes Braams}
+% \date{\filedate}
+% \maketitle
+%
+% \section{Description}
+%
+% This file contains the source for the style files for the \mkidx\
+% program. These are needed to produce the index for the complete
+% source listing and to produce the listing of the changes.
+%
+% \StopEventually{}
+%
+% \section{The index and the list of changes } Most of the entries are
+% the same as in the files \file{gind.ist} and \file{gglo.ist} from
+% the \Lopt{doc} package.
+%
+% \begin{macrocode}
+%<*idx|glo>
+actual '='
+quote '!'
+level '>'
+%</idx|glo>
+% \end{macrocode}
+%
+% Because the \babel\ system consists of so many files the default
+% codeline numbering scheme of the \Lopt{doc} package has been
+% adapted. The line numbers consist of two parts seperated with a
+% dot. This has to made known to the \mkidx\ program when it
+% produces the index.
+%
+% \begin{macrocode}
+%<+idx>page_compositor "."
+% \end{macrocode}
+%
+% Any further entries are again copied from \file{gind.ist} and
+% \file{gglo.ist}.
+%
+% \begin{macrocode}
+%<*idx>
+preamble
+"\n \\begin{theindex} \n \\makeatletter\\scan@allowedfalse\n"
+postamble
+"\n\n \\end{theindex}\n"
+%</idx>
+%<*glo>
+preamble
+"\n \\begin{theglossary} \n
+ \\makeatletter\\scan@allowedfalse\n"
+postamble
+"\n\n \\end{theglossary}\n"
+keyword "\\glossaryentry"
+%</glo>
+%<+idx|glo>item_x1 "\\efill \n \\subitem "
+%<+idx>item_x2 "\\efill \n \\subsubitem "
+%<+glo>item_x2 "\\ "
+%<*idx|glo>
+delim_0 "\\pfill "
+delim_1 "\\pfill "
+delim_2 "\\pfill "
+% The next lines will produce some warnings when
+% running Makeindex as they try to cover two different
+% versions of the program:
+lethead_prefix "{\\bfseries\\hfil "
+lethead_suffix "\\hfil}\\nopagebreak\n"
+%</idx|glo>
+%<+idx>lethead_flag 1
+%<+glo>lethead_flag 0
+%<*idx|glo>
+heading_prefix "{\\bfseries\\hfil "
+heading_suffix "\\hfil}\\nopagebreak\n"
+%</idx|glo>
+%<+idx>headings_flag 1
+%<+glo>headings_flag 0
+% \end{macrocode}
+%
diff --git a/Master/texmf-dist/source/generic/babel/bbplain.dtx b/Master/texmf-dist/source/generic/babel/bbplain.dtx
new file mode 100644
index 00000000000..ba2aad20de2
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bbplain.dtx
@@ -0,0 +1,717 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{795}
+%
+% \iffalse
+%<*dtx>
+\ProvidesFile{bbplain.dtx}
+ [2004/02/19 v1.0r Babel support for plain-based formats]
+%</dtx>
+%
+%% File `bbplain.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2004
+%% by Johannes Braams
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the extra definitions needed to be able to use babel
+% with a plain-based format.
+%<*filedriver>
+\documentclass{ltxdoc}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \it lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{bbplain.dtx}
+\end{document}
+%</filedriver>
+% \fi
+%
+% \GetFileInfo{bbplain.dtx}
+% \StopEventually{}
+% \changes{bbplain-1.0n}{1998/06/08}{Added the source for the format
+% wrapper files}
+%
+% \section{Not renaming \file{hyphen.tex}}
+% As Don Knuth has declared that the filename \file{hyphen.tex} may
+% only be used to designate \emph{his} version of the american
+% English hyphenation patterns, a new solution has to be found in
+% order to be able to load hyphenation patterns for other languages
+% in a plain-based \TeX-format.
+% When asked he responded:
+% \begin{quote}
+% That file name is "sacred", and if anybody changes it they will
+% cause severe upward/downward compatibility headaches.
+%
+% People can have a file localhyphen.tex or whatever they like,
+% but they mustn't diddle with hyphen.tex (or plain.tex except to
+% preload additional fonts).
+% \end{quote}
+%
+% The files \file{bplain.tex} and \file{blplain.tex} can be used as
+% replacement wrappers around \file{plain.tex} and
+% \file{lplain.tex} to acheive the desired effect, based on the
+% \pkg{babel} package. If you load each of them with ini\TeX, you
+% will get a file called either \file{bplain.fmt} or
+% \file{blplain.fmt}, which you can use as replacements for
+% \file{plain.fmt} and \file{lplain.fmt}.
+%
+% As these files are going to be read as the first thing ini\TeX\
+% sees, we need to set some category codes just to be able to
+% change the definition of |\input|
+% \begin{macrocode}
+%<*bplain|blplain>
+\catcode`\{=1 % left brace is begin-group character
+\catcode`\}=2 % right brace is end-group character
+\catcode`\#=6 % hash mark is macro parameter character
+% \end{macrocode}
+% Now let's see if a file called \file{hyphen.cfg} can be found
+% somewhere on \TeX's input path by trying to open it for
+% reading...
+% \begin{macrocode}
+\openin 0 hyphen.cfg
+% \end{macrocode}
+% If the file wasn't found the following test turns out true.
+% \begin{macrocode}
+\ifeof0
+\else
+% \end{macrocode}
+% When \file{hyphen.cfg} could be opened we make sure that
+% \emph{it} will be read instead of the file \file{hyphen.tex}
+% which should (according to Don Knuth's ruling) contain the
+% american English hyphenation patterns and nothing else.
+%
+% We do this by first saving the original meaning of |\input| (and
+% I use a one letter control sequence for that so as not to waste
+% multi-letter control sequence on this in the format).
+% \begin{macrocode}
+ \let\a\input
+% \end{macrocode}
+% Then |\input| is defined to forget about its argument and load
+% \file{hyphen.cfg} instead.
+% \begin{macrocode}
+ \def\input #1 {%
+ \let\input\a
+ \a hyphen.cfg
+% \end{macrocode}
+% Once that's done the original meaning of |\input| can be restored
+% and the definition of |\a| can be forgotten.
+% \begin{macrocode}
+ \let\a\undefined
+ }
+\fi
+%</bplain|blplain>
+% \end{macrocode}
+% Now that we have made sure that \file{hyphen.cfg} will be loaded
+% at the right moment it is time to load \file{plain.tex}.
+% \begin{macrocode}
+%<bplain>\a plain.tex
+%<blplain>\a lplain.tex
+% \end{macrocode}
+% Finally we change the contents of |\fmtname| to indicate that
+% this is \emph{not} the plain format, but a format based on plain
+% with the \pkg{babel} package preloaded.
+% \begin{macrocode}
+%<bplain>\def\fmtname{babel-plain}
+%<blplain>\def\fmtname{babel-lplain}
+% \end{macrocode}
+%
+% When you are using a different format, based on plain.tex you can
+% make a copy of blplain.tex, rename it and replace \file{plain.tex}
+% with the name of your format file.
+%
+% \section{Support for formats based on \textsc{plain}\TeX}
+%
+% The following code duplicates or emulates parts of \LaTeXe\ that
+% are needed for \babel.
+%
+% \changes{bbplain-1.0f}{1996/07/09}{Consistently use \cs{@undefined}
+% instead of \cs{undefined}}
+% \changes{bbplain-1.0f}{1996/07/09}{added \cs{@empty}}
+% \changes{bbplain-1.0h}{1996/10/07}{Only load the necessary parts
+% into the format, let this file be read agian by babel.def}
+% \begin{macrocode}
+%<*code>
+\ifx\adddialect\@undefined
+% \end{macrocode}
+% When |\adddialect| is still undefined we are making a
+% format. In that case only the first part of this file is needed.
+% \begin{macrocode}
+ \def\@empty{}
+% \end{macrocode}
+% We need to define |\loadlocalcfg| for plain users as the
+% \LaTeX\ definition uses |\InputIfFileExists|.
+% \changes{bbplain-1.0c}{1995/07/26}{Added definition of
+% \cs{loadlocalcfg}}
+% \changes{bbplain-1.0d}{1996/01/08}{Also reset category codes after
+% loading the configuration file as \cs{AtEndOfPackage} is
+% undefined in this case}
+% \begin{macrocode}
+ \def\loadlocalcfg#1{%
+ \openin0#1.cfg
+ \ifeof0
+ \closein0
+ \else
+ \closein0
+ {\immediate\write16{*************************************}%
+ \immediate\write16{* Local config file #1.cfg used}%
+ \immediate\write16{*}%
+ }
+ \input #1.cfg\relax
+ \fi
+% \end{macrocode}
+% We have to execute \cs{@endofldf} in this case
+% \begin{macrocode}
+ \@endofldf
+ }
+% \end{macrocode}
+%
+% \changes{bbplain-1.0c}{1995/11/08}{Moved the \cs{dump} code here from
+% \file{babel.dtx}}
+%
+% \changes{bbplain-0.1}{1991/10/31}{Added redefinition of \cs{dump} to
+% add a message to \cs{everyjob}}
+% We want to add a message to the message \LaTeX$\:$2.09 puts in
+% the |\everyjob| register. This could be done by the following
+% code:
+% \begin{verbatim}
+% \let\orgeveryjob\everyjob
+% \def\everyjob#1{%
+% \orgeveryjob{#1}%
+% \orgeveryjob\expandafter{\the\orgeveryjob\immediate\write16{%
+% hyphenation patterns for \the\loaded@patterns loaded.}}%
+% \let\everyjob\orgeveryjob\let\orgeveryjob\@undefined}
+% \end{verbatim}
+% The code above redefines the control sequence \cs{everyjob}
+% in order to be able to add something to the current contents of
+% the register. This is necessary because the processing of
+% hyphenation patterns happens long before \LaTeX\ fills the
+% register.\\
+% There are some problems with this approach though.
+% \begin{itemize}
+% \item When someone wants to use several hyphenation patterns with
+% \SliTeX\ the above scheme won't work. The reason is that \SliTeX\
+% overwrites the contents of the |\everyjob| register with its own
+% message.
+% \item Plain \TeX\ does not use the |\everyjob| register so the
+% message would not be displayed.
+% \end{itemize}
+% To circumvent this a `dirty trick' can be used. As this code is
+% only processed when creating a new format file there is one
+% command that is sure to be used, |\dump|. Therefore the original
+% |\dump| is saved in |\org@dump| and a new definition is supplied.
+% \begin{macrocode}
+ \let\orig@dump=\dump
+ \def\dump{%
+% \end{macrocode}
+% To make sure that \LaTeX$\:$2.09 executes the
+% |\@begindocumenthook| we would want to alter |\begin{document}|,
+% but as this done too often already, we add the new code at the
+% front of |\@preamblecmds|. But we can only do that after it has
+% been defined, so we add this piece of code to |\dump|.
+% \changes{bbplain-1.0c}{1995/11/19}{Add execution of
+% \cs{@begindocumenthook} to \cs{@preamblecmds}}
+% \changes{bbplain-1.0i}{1997/01/02}{\cs{document} is not a
+% \LaTeX2.09-only command; AMS\TeX defines it too; now use
+% \cs{@ztryfc} to detect \LaTeX2.09}
+% \changes{bbplain-1.0j}{1997/01/07}{Add the definition of
+% \cs{@begindocumenthook} to the \LaTeX2.09 format}
+% \begin{macrocode}
+ \ifx\@ztryfc\@undefined
+ \else
+ \toks0=\expandafter{\@preamblecmds}
+ \edef\@preamblecmds{\noexpand\@begindocumenthook\the\toks0}
+ \def\@begindocumenthook{}
+ \fi
+% \end{macrocode}
+% This new definition starts by adding an instruction to write a
+% message on the terminal and in the transcript file to inform the
+% user of the preloaded hyphenation patterns.
+% \changes{bbplain-1.0f}{1996/07/09}{Use \cs{toks8} instead of
+% \cs{patterns@loaded}}
+% \begin{macrocode}
+ \everyjob\expandafter{\the\everyjob%
+ \immediate\write16{\the\toks8 loaded.}}%
+% \end{macrocode}
+% Then everything is restored to the old situation and the format
+% is dumped.
+% \begin{macrocode}
+ \let\dump\orig@dump\let\orig@dump\@undefined\dump}
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% The rest of this file is not processed by ini\TeX\ but during the
+% normal document run.
+% A number of \LaTeX\ macro's that are needed later on.
+% \changes{bbplain-1.0n}{1998/06/10}{Added \cs{@secondoftwo}}
+% \changes{bbplain-1.0q}{1999/09/16}{Added \cs{@ifundefined}}
+% \begin{macrocode}
+\long\def\@firstofone#1{#1}
+\long\def\@firstoftwo#1#2{#1}
+\long\def\@secondoftwo#1#2{#2}
+\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}}
+\def\@star@or@long#1{%
+ \@ifstar
+ {\let\l@ngrel@x\relax#1}%
+ {\let\l@ngrel@x\long#1}}
+\let\l@ngrel@x\relax
+\def\@car#1#2\@nil{#1}
+\def\@cdr#1#2\@nil{#2}
+\let\@typeset@protect\relax
+\long\def\@gobble#1{}
+\edef\@backslashchar{\expandafter\@gobble\string\\}
+\def\strip@prefix#1>{}
+\def\g@addto@macro#1#2{{%
+ \toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}}}
+\def\@namedef#1{\expandafter\def\csname #1\endcsname}
+\def\@ifundefined#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+% \end{macrocode}
+% \LaTeXe\ has the command |\@onlypreamble| which adds commands to
+% a list of commands that are no longer needed after
+% |\begin{document}|.
+% \begin{macrocode}
+\ifx\@preamblecmds\@undefined
+ \def\@preamblecmds{}
+\fi
+\def\@onlypreamble#1{%
+ \expandafter\gdef\expandafter\@preamblecmds\expandafter{%
+ \@preamblecmds\do#1}}
+\@onlypreamble\@onlypreamble
+% \end{macrocode}
+% Mimick \LaTeX's |\AtBeginDocument|; for this to work the user
+% needs to add |\begindocument| to his file.
+% \begin{macrocode}
+\def\begindocument{%
+ \@begindocumenthook
+ \global\let\@begindocumenthook\@undefined
+ \def\do##1{\global\let ##1\@undefined}%
+ \@preamblecmds
+ \global\let\do\noexpand
+ }
+% \end{macrocode}
+%
+% \changes{bbplain-1.0j}{1997/01/07}{\cs{@begindocumenthook} might
+% already be defined}
+% \changes{bbplain-1.0k}{1997/01/14}{missing \cs{@undefined} added}
+% \begin{macrocode}
+\ifx\@begindocumenthook\@undefined
+ \def\@begindocumenthook{}
+\fi
+\@onlypreamble\@begindocumenthook
+\def\AtBeginDocument{\g@addto@macro\@begindocumenthook}
+% \end{macrocode}
+% We also have to mimick \LaTeX's |\AtEndOfPackage|. Our
+% replacement macro is much simpler; it stores its argument in
+% |\@endofldf|.
+% \begin{macrocode}
+\def\AtEndOfPackage#1{\g@addto@macro\@endofldf{#1}}
+\@onlypreamble\AtEndOfPackage
+\def\@endofldf{}
+\@onlypreamble\@endofldf
+% \end{macrocode}
+% \LaTeX\ needs to be able to switch off writing to its auxiliary
+% files; plain doesn't have them by default.
+% \changes{bbplain-1.0m}{1997/04/28}{Set \cs{if@filesw} to
+% \cs{iffalse} only for plain \TeX}
+% \changes{bbplain-1.0n}{1997/09/11}{Repaired typo and added missing
+% \cs{endcsname}}
+% \begin{macrocode}
+\ifx\if@filesw\@undefined
+ \expandafter\let\csname if@filesw\expandafter\endcsname
+ \csname iffalse\endcsname
+\fi
+% \end{macrocode}
+% Mimick \LaTeX's commands to define control sequences.
+% \changes{bbplain-1.0e}{1996/02/22}{Provide a more complete emulation
+% of \cs{DeclareRobustCommand} and \cs{newcommand}}
+% \begin{macrocode}
+\def\newcommand{\@star@or@long\new@command}
+\def\new@command#1{%
+ \@testopt{\@newcommand#1}0}
+\def\@newcommand#1[#2]{%
+ \@ifnextchar [{\@xargdef#1[#2]}%
+ {\@argdef#1[#2]}}
+\long\def\@argdef#1[#2]#3{%
+ \@yargdef#1\@ne{#2}{#3}}
+\long\def\@xargdef#1[#2][#3]#4{%
+ \expandafter\def\expandafter#1\expandafter{%
+ \expandafter\@protected@testopt\expandafter #1%
+ \csname\string#1\expandafter\endcsname{#3}}%
+ \expandafter\@yargdef \csname\string#1\endcsname
+ \tw@{#2}{#4}}
+\long\def\@yargdef#1#2#3{%
+ \@tempcnta#3\relax
+ \advance \@tempcnta \@ne
+ \let\@hash@\relax
+ \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}%
+ \@tempcntb #2%
+ \@whilenum\@tempcntb <\@tempcnta
+ \do{%
+ \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}%
+ \advance\@tempcntb \@ne}%
+ \let\@hash@##%
+ \l@ngrel@x\expandafter\def\expandafter#1\reserved@a}
+\let\providecommand\newcommand
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DeclareRobustCommand{\@star@or@long\declare@robustcommand}
+\def\declare@robustcommand#1{%
+ \edef\reserved@a{\string#1}%
+ \def\reserved@b{#1}%
+ \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
+ \edef#1{%
+ \ifx\reserved@a\reserved@b
+ \noexpand\x@protect
+ \noexpand#1%
+ \fi
+ \noexpand\protect
+ \expandafter\noexpand\csname
+ \expandafter\@gobble\string#1 \endcsname
+ }%
+ \expandafter\new@command\csname
+ \expandafter\@gobble\string#1 \endcsname
+}
+\def\x@protect#1{%
+ \ifx\protect\@typeset@protect\else
+ \@x@protect#1%
+ \fi
+}
+\def\@x@protect#1\fi#2#3{%
+ \fi\protect#1%
+}
+% \end{macrocode}
+%
+% The following little macro |\in@| is taken from latex.ltx; it
+% checks whether its first argument is part of its second
+% argument. It uses the boolean |\in@|; allocating a new boolean
+% inside conditionally executed code is not possible, hence the
+% construct with the temporary definition of |\bbl@tempa|.
+% \changes{bbplain-1.0o}{1998/07/02}{Added definition of \cs{in@}}
+% \begin{macrocode}
+\def\bbl@tmpa{\csname newif\endcsname\ifin@}
+\ifx\in@\@undefined
+ \def\in@#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+ \ifx\in@##2\in@false\else\in@true\fi}%
+ \in@@#2#1\in@\in@@}
+\else
+ \let\bbl@tmpa\@empty
+\fi
+\bbl@tmpa
+% \end{macrocode}
+%
+% \LaTeX\ has a macro to check whether a certain package was loaded
+% with specific options. The command has two extra arguments which
+% are code to be executed in either the true or false case.
+% This is used to detect whether the document needs one of the
+% accents to be activated (\Lopt{activegrave} and
+% \Lopt{activeacute}). For plain \TeX\ we assume that the user
+% wants them to be active by default. Therefore the only thing we
+% do is execute the third argument (the code for the true case).
+%
+% \begin{macrocode}
+\def\@ifpackagewith#1#2#3#4{%
+ #3}
+% \end{macrocode}
+% The \LaTeX\ macro |\@ifl@aded| checks whether a file was
+% loaded. This functionality is not needed for plain \TeX\ but we
+% need the macro to be defined as a no-op.
+% \changes{bbplain-1.0p}{1999/04/27}{Added \cs{@ifl@aded} as a no-op}
+% \begin{macrocode}
+\def\@ifl@aded#1#2#3#4{}
+% \end{macrocode}
+%
+% \changes{bbplain-1.0e}{1996/01/15}{Added the \cs{newcommand} code}
+% For the following code we need to make sure that the commands
+% |\newcommand| and |\providecommand| exist with some sensible
+% definition. They are not fully equivalent to their \LaTeXe\
+% versions; just enough to make things work in plain~\TeX
+% environments.
+%
+% \changes{bbplain-1.0k}{1997/01/14}{\cs{newcount} is an \cs{outer}
+% command, can't use it inside an \cs{if} construct}
+% \changes{bbplain-1.0l}{1997/01/19}{Mixed up the definition of
+% \cs{@tempcntb}}
+% \begin{macrocode}
+\ifx\@tempcnta\@undefined
+ \csname newcount\endcsname\@tempcnta\relax
+\fi
+\ifx\@tempcntb\@undefined
+ \csname newcount\endcsname\@tempcntb\relax
+\fi
+% \end{macrocode}
+% To prevent wasting two counters in \LaTeX$\:$2.09 (because
+% counters with the same name are allocated later by it) we reset
+% the counter that holds the next free counter (|\count10|).
+% \begin{macrocode}
+\ifx\bye\@undefined
+ \advance\count10 by -2\relax
+\fi
+\ifx\@ifnextchar\@undefined
+ \def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\@ifnch}
+ \def\@ifnch{%
+ \ifx\@let@token\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c}
+ \def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
+ \def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch}
+\fi
+\def\@testopt#1#2{%
+ \@ifnextchar[{#1}{#1[#2]}}
+\def\@protected@testopt#1{%%
+ \ifx\protect\@typeset@protect
+ \expandafter\@testopt
+ \else
+ \@x@protect#1%
+ \fi}
+\long\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
+ #2\relax}\fi}
+\long\def\@iwhilenum#1{\ifnum #1\expandafter\@iwhilenum
+ \else\expandafter\@gobble\fi{#1}}
+% \end{macrocode}
+% Code from \file{ltoutenc.dtx}, adapted for use in the plain \TeX\
+% environment.
+% \begin{macrocode}
+\def\DeclareTextCommand{%
+ \@dec@text@cmd\providecommand
+}
+\def\ProvideTextCommand{%
+ \@dec@text@cmd\providecommand
+}
+\def\DeclareTextSymbol#1#2#3{%
+ \@dec@text@cmd\chardef#1{#2}#3\relax
+}
+\def\@dec@text@cmd#1#2#3{%
+ \expandafter\def\expandafter#2%
+ \expandafter{%
+ \csname#3-cmd\expandafter\endcsname
+ \expandafter#2%
+ \csname#3\string#2\endcsname
+ }%
+% \let\@ifdefinable\@rc@ifdefinable
+ \expandafter#1\csname#3\string#2\endcsname
+}
+\def\@current@cmd#1{%
+ \ifx\protect\@typeset@protect\else
+ \noexpand#1\expandafter\@gobble
+ \fi
+}
+\def\@changed@cmd#1#2{%
+ \ifx\protect\@typeset@protect
+ \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
+ \expandafter\ifx\csname ?\string#1\endcsname\relax
+ \expandafter\def\csname ?\string#1\endcsname{%
+ \@changed@x@err{#1}%
+ }%
+ \fi
+ \global\expandafter\let
+ \csname\cf@encoding \string#1\expandafter\endcsname
+ \csname ?\string#1\endcsname
+ \fi
+ \csname\cf@encoding\string#1%
+ \expandafter\endcsname
+ \else
+ \noexpand#1%
+ \fi
+}
+\def\@changed@x@err#1{%
+ \errhelp{Your command will be ignored, type <return> to proceed}%
+ \errmessage{Command \protect#1 undefined in encoding \cf@encoding}}
+\def\DeclareTextCommandDefault#1{%
+ \DeclareTextCommand#1?%
+}
+\def\ProvideTextCommandDefault#1{%
+ \ProvideTextCommand#1?%
+}
+\expandafter\let\csname OT1-cmd\endcsname\@current@cmd
+\expandafter\let\csname?-cmd\endcsname\@changed@cmd
+\def\DeclareTextAccent#1#2#3{%
+ \DeclareTextCommand#1{#2}[1]{\accent#3 ##1}
+}
+\def\DeclareTextCompositeCommand#1#2#3#4{%
+ \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
+ \edef\reserved@b{\string##1}%
+ \edef\reserved@c{%
+ \expandafter\@strip@args\meaning\reserved@a:-\@strip@args}%
+ \ifx\reserved@b\reserved@c
+ \expandafter\expandafter\expandafter\ifx
+ \expandafter\@car\reserved@a\relax\relax\@nil
+ \@text@composite
+ \else
+ \edef\reserved@b##1{%
+ \def\expandafter\noexpand
+ \csname#2\string#1\endcsname####1{%
+ \noexpand\@text@composite
+ \expandafter\noexpand\csname#2\string#1\endcsname
+ ####1\noexpand\@empty\noexpand\@text@composite
+ {##1}%
+ }%
+ }%
+ \expandafter\reserved@b\expandafter{\reserved@a{##1}}%
+ \fi
+ \expandafter\def\csname\expandafter\string\csname
+ #2\endcsname\string#1-\string#3\endcsname{#4}
+ \else
+ \errhelp{Your command will be ignored, type <return> to proceed}%
+ \errmessage{\string\DeclareTextCompositeCommand\space used on
+ inappropriate command \protect#1}
+ \fi
+}
+\def\@text@composite#1#2#3\@text@composite{%
+ \expandafter\@text@composite@x
+ \csname\string#1-\string#2\endcsname
+}
+\def\@text@composite@x#1#2{%
+ \ifx#1\relax
+ #2%
+ \else
+ #1%
+ \fi
+}
+%
+\def\@strip@args#1:#2-#3\@strip@args{#2}
+\def\DeclareTextComposite#1#2#3#4{%
+ \def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}%
+ \bgroup
+ \lccode`\@=#4%
+ \lowercase{%
+ \egroup
+ \reserved@a @%
+ }%
+}
+%
+\def\UseTextSymbol#1#2{%
+% \let\@curr@enc\cf@encoding
+% \@use@text@encoding{#1}%
+ #2%
+% \@use@text@encoding\@curr@enc
+}
+\def\UseTextAccent#1#2#3{%
+% \let\@curr@enc\cf@encoding
+% \@use@text@encoding{#1}%
+% #2{\@use@text@encoding\@curr@enc\selectfont#3}%
+% \@use@text@encoding\@curr@enc
+}
+\def\@use@text@encoding#1{%
+% \edef\f@encoding{#1}%
+% \xdef\font@name{%
+% \csname\curr@fontshape/\f@size\endcsname
+% }%
+% \pickup@font
+% \font@name
+% \@@enc@update
+}
+\def\DeclareTextSymbolDefault#1#2{%
+ \DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}%
+}
+\def\DeclareTextAccentDefault#1#2{%
+ \DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}%
+}
+\def\cf@encoding{OT1}
+% \end{macrocode}
+% Currently we only use the \LaTeXe\ method for accents for those
+% that are known to be made active in \emph{some} language
+% definition file.
+% \begin{macrocode}
+\DeclareTextAccent{\"}{OT1}{127}
+\DeclareTextAccent{\'}{OT1}{19}
+\DeclareTextAccent{\^}{OT1}{94}
+\DeclareTextAccent{\`}{OT1}{18}
+\DeclareTextAccent{\~}{OT1}{126}
+% \end{macrocode}
+% The following control sequences are used in \file{babel.def}
+% but are not defined for \textsc{plain} \TeX.
+% \changes{bbplain-1.0f}{1996/07/10}{Added \cs{textquotedblright} and
+% \cs{textquoteright}}
+% \changes{bbplain-1.0g}{1996/08/15}{Added \cs{ss} and \cs{i}}
+% \changes{bbplain-1.0r}{2000/10/02}{Added \cs{textquotedblleft} and
+% \cs{textquoteleft}}
+% \begin{macrocode}
+\DeclareTextSymbol{\textquotedblleft}{OT1}{92}
+\DeclareTextSymbol{\textquotedblright}{OT1}{`\"}
+\DeclareTextSymbol{\textquoteleft}{OT1}{`\`}
+\DeclareTextSymbol{\textquoteright}{OT1}{`\'}
+\DeclareTextSymbol{\i}{OT1}{16}
+\DeclareTextSymbol{\ss}{OT1}{25}
+% \end{macrocode}
+% For a couple of languages we need the \LaTeX-control sequence
+% |\scriptsize| to be available. Because plain \TeX\ doesn't have
+% such a sofisticated font mechanism as \LaTeX\ has, we just |\let|
+% it to |\sevenrm|.
+% \changes{bbplain-1.0f}{1996/07/10}{Added definition of
+% \cs{scriptsize}}
+% \begin{macrocode}
+\ifx\scriptsize\@undefined
+ \let\scriptsize\sevenrm
+\fi
+%</code>
+% \end{macrocode}
+%
+\endinput
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
diff --git a/Master/texmf-dist/source/generic/babel/breton.dtx b/Master/texmf-dist/source/generic/babel/breton.dtx
new file mode 100644
index 00000000000..e87500aaf14
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/breton.dtx
@@ -0,0 +1,365 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{263}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{breton.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{breton}
+%\fi
+%\ProvidesFile{breton.dtx}
+ [2005/03/29 v1.0h Breton support from the babel system]
+%\iffalse
+%% File `breton.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Breton Language Definition File
+%% Copyright (C) 1994 - 2005
+%% by Christian Rolland
+% Universite de Bretagne occidentale
+% Departement d'informatique
+% 6, avenue Le Gorgeu
+% BP 452
+% 29275 Brest Cedex -- FRANCE
+% Christian.Rolland at univ-brest.fr (Internet)
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Breton language definition file. It is based on the
+% language definition file for french, version 4.5c
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{breton.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{breton.dtx}
+% \changes{breton-1.0e}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \changes{breton-1.0}{1994/09/21}{First release}
+%
+% \section{The Breton language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language-specific macros for the Breton
+% language.
+%
+% There are not really typographic rules for the Breton
+% language. It is a local language (it's one of the celtic
+% languages) which is spoken in Brittany (West of France). So we
+% have a synthesis between french typographic rules and english
+% typographic rules. The characters \texttt{:}, \texttt{;},
+% \texttt{!} and \texttt{?} are made active in order to get a
+% whitespace automatically before these characters.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{breton-1.0e}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{breton}\captionsbreton
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{breton} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@breton| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@breton\@undefined
+ \@nopatterns{Breton}
+ \adddialect\l@breton0\fi
+% \end{macrocode}
+% The next step consists of defining commands to switch to the
+% English language. The reason for this is that a user might want
+% to switch back and forth between languages.
+%
+% \begin{macro}{\captionsbreton}
+% The macro |\captionsbreton| defines all strings used in the
+% four standard document classes provided with \LaTeX.
+% \changes{breton-1.0b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{breton-1.0h}{2000/09/19}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsbreton{%
+ \def\prefacename{Rakskrid}%
+ \def\refname{Daveenno\`u}%
+ \def\abstractname{Dvierra\~n}%
+ \def\bibname{Lennadurezh}%
+ \def\chaptername{Pennad}%
+ \def\appendixname{Stagadenn}%
+ \def\contentsname{Taolenn}%
+ \def\listfigurename{Listenn ar Figurenno\`u}%
+ \def\listtablename{Listenn an taolenno\`u}%
+ \def\indexname{Meneger}%
+ \def\figurename{Figurenn}%
+ \def\tablename{Taolenn}%
+ \def\partname{Lodenn}%
+ \def\enclname{Diello\`u kevret}%
+ \def\ccname{Eilskrid da}%
+ \def\headtoname{evit}
+ \def\pagename{Pajenn}%
+ \def\seename{Gwelout}%
+ \def\alsoname{Gwelout ivez}%
+ \def\proofname{Proof}% <-- needs translation
+ \def\glossaryname{Glossary}% <-- Needs translation
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datebreton}
+% The macro |\datebreton| redefines the command
+% |\today| to produce Breton dates.
+% \changes{breton-1.0f}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{breton-1.0f}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\datebreton{%
+ \def\today{\ifnum\day=1\relax 1\/$^{\rm a\tilde{n}}$\else
+ \number\day\fi \space a\space viz\space\ifcase\month\or
+ Genver\or C'hwevrer\or Meurzh\or Ebrel\or Mae\or Mezheven\or
+ Gouere\or Eost\or Gwengolo\or Here\or Du\or Kerzu\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasbreton}
+% \begin{macro}{\noextrasbreton}
+% The macro |\extrasbreton| will perform all the extra
+% definitions needed for the Breton language. The macro
+% |\noextrasbreton| is used to cancel the actions of
+% |\extrasbreton|.
+%
+% The category code of the characters \texttt{:}, \texttt{;},
+% \texttt{!} and \texttt{?} is made |\active| to insert a little
+% white space.
+% \changes{breton-1.0b}{1995/03/07}{Use the new mechanism for dealing
+% with active chars}
+% \begin{macrocode}
+\initiate@active@char{:}
+\initiate@active@char{;}
+\initiate@active@char{!}
+\initiate@active@char{?}
+% \end{macrocode}
+% We specify that the breton group of shorthands should be used.
+% \begin{macrocode}
+\addto\extrasbreton{\languageshorthands{breton}}
+% \end{macrocode}
+% These characters are `turned on' once, later their definition may
+% vary.
+% \begin{macrocode}
+\addto\extrasbreton{%
+ \bbl@activate{:}\bbl@activate{;}%
+ \bbl@activate{!}\bbl@activate{?}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{breton-1.0g}{1999/12/16}{Deactivate shorthands ouside of Breton}
+% \begin{macrocode}
+\addto\noextrasbreton{%
+ \bbl@deactivate{:}\bbl@deactivate{;}%
+ \bbl@deactivate{!}\bbl@deactivate{?}}
+% \end{macrocode}
+%
+% The last thing |\extrasbreton| needs to do is to make sure that
+% |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasbreton| will switch it of again.
+% \begin{macrocode}
+\addto\extrasbreton{\bbl@frenchspacing}
+\addto\noextrasbreton{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\breton@sh@;@}
+% We have to reduce the amount of white space before \texttt{;},
+% \texttt{:} and \texttt{!} when the user types a space in front of
+% these characters. This should only happen outside mathmode, hence
+% the test with |\ifmmode|.
+%
+% \begin{macrocode}
+\declare@shorthand{breton}{;}{%
+ \ifmmode
+ \string;\space
+ \else\relax
+% \end{macrocode}
+% In horizontal mode we check for the presence of a `space' and
+% replace it by a |\thinspace|.
+% \begin{macrocode}
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \fi
+ \fi
+ \string;\space
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\breton@sh@:@}
+% \begin{macro}{\breton@sh@!@}
+% Because these definitions are very similar only one is displayed
+% in a way that the definition can be easily checked.
+% \begin{macrocode}
+\declare@shorthand{breton}{:}{%
+ \ifmmode\string:\space
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@\unskip\penalty\@M\thinspace\fi
+ \fi
+ \string:\space
+ \fi}
+\declare@shorthand{breton}{!}{%
+ \ifmmode\string!\space
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@\unskip\penalty\@M\thinspace\fi
+ \fi
+ \string!\space
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\breton@sh@?@}
+% For the question mark something different has to be done. In this
+% case the amount of white space that replaces the space character
+% depends on the dimensions of the font.
+% \begin{macrocode}
+\declare@shorthand{breton}{?}{%
+ \ifmmode
+ \string?\space
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip
+ \kern\fontdimen2\font
+ \kern-1.4\fontdimen3\font
+ \fi
+ \fi
+ \string?\space
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% All that is left to do now is provide the breton user with some
+% extra utilities.
+%
+% Some definitions for special characters.
+% \begin{macrocode}
+\DeclareTextSymbol{\at}{OT1}{64}
+\DeclareTextSymbol{\at}{T1}{64}
+\DeclareTextSymbolDefault{\at}{OT1}
+\DeclareTextSymbol{\boi}{OT1}{92}
+\DeclareTextSymbol{\boi}{T1}{16}
+\DeclareTextSymbolDefault{\boi}{OT1}
+\DeclareTextSymbol{\circonflexe}{OT1}{94}
+\DeclareTextSymbol{\circonflexe}{T1}{2}
+\DeclareTextSymbolDefault{\circonflexe}{OT1}
+\DeclareTextSymbol{\tild}{OT1}{126}
+\DeclareTextSymbol{\tild}{T1}{3}
+\DeclareTextSymbolDefault{\tild}{OT1}
+\DeclareTextSymbol{\degre}{OT1}{23}
+\DeclareTextSymbol{\degre}{T1}{6}
+\DeclareTextSymbolDefault{\degre}{OT1}
+% \end{macrocode}
+%
+% The following macros are used in the redefinition of |\^| and
+% |\"| to handle the letter i.
+% \changes{breton-1.0c}{1995/07/07}{Postpone the
+% \cs{DeclareTextCompositeCommand}s untill \cs{AtBeginDocument}}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \DeclareTextCompositeCommand{\^}{OT1}{i}{\^\i}
+ \DeclareTextCompositeCommand{\"}{OT1}{i}{\"\i}}
+% \end{macrocode}
+%
+% And some more macros for numbering.
+% \begin{macrocode}
+\def\kentan{1\/${}^{\rm a\tilde{n}}$}
+\def\eil{2\/${}^{\rm l}$}
+\def\re{\/${}^{\rm re}$}
+\def\trede{3\re}
+\def\pevare{4\re}
+\def\vet{\/${}^{\rm vet}$}
+\def\pempvet{5\vet}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{breton-1.0e}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{breton}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/breton.ins b/Master/texmf-dist/source/generic/babel/breton.ins
new file mode 100644
index 00000000000..595e0cba1bd
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/breton.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{breton.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{breton.ldf}{\from{breton.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/bulgarian.dtx b/Master/texmf-dist/source/generic/babel/bulgarian.dtx
new file mode 100644
index 00000000000..decff6c221b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bulgarian.dtx
@@ -0,0 +1,1037 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{1266}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{bulgarian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{bulgarian}
+ [2005/03/29 v1.0d Bulgarian support from the babel system]
+%
+%% File `bulgarian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989-2005
+%% by Johannes Braams,TeXniek
+%
+%% Bulgarian Language Definition File
+%% Copyright (C) 1995-2005
+%% by Georgi.Boshnakov <georgi.boshnakov at umist.ac.uk>
+%% Johannes Braams,TeXniek
+%
+%% Adapted from russianb.dtx
+%% by Georgi.Boshnakov <georgi.boshnakov at umist.ac.uk>
+%
+%% Please report errors to:J.L.Braams
+%% babal at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand\TeXhax{\TeX hax}
+\newcommand\babel{\textsf{babel}}
+\newcommand\langvar{$\langle\it lang \rangle$}
+\newcommand\note[1]{}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\newcommand\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{bulgarian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{bulgarian.dtx}
+%
+% \changes{bulgarian-0.99}{2000/06/10}{%
+% This is a prerelease version of this file.
+% Features needing further testing are removed.}
+%
+% \section{The Bulgarian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. This file was initially derived from the August-1998
+% version of \file{russianb.dtx}.
+%
+% It is (reasonably) backward compatible with the 1994/1996
+% (non-babel) bulgarian style (bulgaria.sty) by Georgi
+% Boshnakov---files prepared for that style should compile
+% successfully (with vastly improved appearance due to usage of
+% standard fonts).} provides the language-specific macros for the
+% Bulgarian language.
+%
+% Users should take note of the vaious ``cyrillic'' dashes
+% available now (see below). These should remove many causes of
+% headache. Also, although by default the Bulgarian quotation marks
+% will appear automatically when typesetting in Bulgarian, it is
+% better to use the new commands \cs{"'} and \cs{"'} which
+% explicitly typeset them.
+% Note: automatic switch to Bulgarian quotation is withdrawn
+% for the moment and may not be reintroduced at all.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:bulgarian-quote} an overview is given of its
+% purpose.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |"---| & Cyrillic emdash in plain text. \\
+% |"--~| & Cyrillic emdash in compound names (surnames). \\
+% |"--*| & Cyrillic emdash for denoting direct speech. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compound words with hyphen, e.g.\ |x-""y|
+% or some other signs as ``disable/enable''). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |",| & thinspace for initials with a breakpoint
+% in following surname. \\
+% |"`| & for German left double quotes
+% (looks like ,\kern-0.08em,). \\
+% |"'| & for German right double quotes (looks like ``). \\%''
+% |"<| & for French left double quotes (looks like $<\!\!<$).\\
+% |">| & for French right double quotes (looks like $>\!\!>$).\\
+% \end{tabular}
+% \caption{The extra definitions made
+% by\file{bulgarian}}\label{tab:bulgarian-quote}
+% \end{center}
+% \end{table}
+%
+% The quotes in table~\ref{tab:bulgarian-quote} can also be typeset
+% by using the commands in table~\ref{tab:bmore-quote}.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |\cdash---| & Cyrillic emdash in plain text. \\
+% |\cdash--~| & Cyrillic emdash in compound names (surnames). \\
+% |\cdash--*| & Cyrillic emdash for denoting direct speech. \\
+% |\glqq| & for German left double quotes
+% (looks like,\kern-0.08em,). \\
+% |\grqq| & for German right double quotes (looks like ``).\\%''
+% |\flqq| & for French left double quotes (looks like $<\!\!<$).\\
+% |\frqq| & for French right double quotes (looks like $>\!\!>$).\\
+% |\dq| & the original quotes character (|"|).
+% \end{tabular}
+% \caption{More commands which produce quotes, defined
+% by \babel}\label{tab:bmore-quote}
+% \end{center}
+% \end{table}
+%
+% The French quotes are also available as ligatures `|<<|' and
+% `|>>|' in 8-bit Cyrillic font encodings (\texttt{LCY},
+% \texttt{X2}, \texttt{T2*}) and as `|<|' and `|>|' characters in
+% 7-bit Cyrillic font encodings (\texttt{OT2} and \texttt{LWN}).
+%
+% The quotation marks traditionally used in Bulgarian were borrowed
+% from German o they keep their original names. French quotation
+% marks may be seen as well in older books.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+%
+% \begin{macrocode}
+%<*code>
+\LdfInit{bulgarian}{captionsbulgarian}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{bulgarian} will be an `unknown' language, in
+% which case we have to make it known. So we check for the
+% existence of |\l@bulgarian| to see whether we have to do
+% something here.
+%
+% \begin{macrocode}
+\ifx\l@bulgarian\@undefined
+ \@nopatterns{Bulgarian}
+ \adddialect\l@bulgarian0
+\fi
+% \end{macrocode}
+%
+%
+%
+% \begin{macro}{\latinencoding}
+%
+% We need to know the encoding for text that is supposed to be
+% which is active at the end of the \babel\ package. If the
+% \pkg{fontenc} package is loaded later, then \ldots too bad!
+%
+% \begin{macrocode}
+\let\latinencoding\cf@encoding
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The user may choose between different available Cyrillic
+% encodings---e.g., \texttt{X2}, \texttt{LCY}, or \texttt{LWN}.
+% If the user wants to use a font encoding other than the default
+% (\texttt{T2A}), he has to load the corresponding file
+% \emph{before} \file{bulgarian.sty}.
+% This may be done in the following way:
+%
+% \begin{verbatim}
+% \usepackage[LCY,OT1]{fontenc} %overwrite the default encoding;
+% \usepackage[english,bulgarian]{babel}
+% \end{verbatim}
+% \unskip
+%
+% Note: most people would prefer the \texttt{T2A} to \texttt{X2},
+% because \texttt{X2} does not contain Latin letters, and users
+% should be very careful to switch the language every time they
+% want to typeset a Latin word inside a Bulgarian phrase or vice
+% versa. On the other hand, switching the language is a good
+% practice anyway. With a decent text processing program it does
+% not involve more work than switching between the Bulgarian and
+% English keyboard. Moreover that the far most common disruption
+% occurs as a result of forgetting to switch back to cyrillic
+% keyboard.
+%
+% We parse the |\cdp@list| containing the encodings known to
+% \LaTeX\ in the order they were loaded. We set the
+% |\cyrillicencoding| to the \emph{last} loaded encoding in the
+% list of supported Cyrillic encodings: \texttt{OT2}, \texttt{LWN},
+% \texttt{LCY}, \texttt{X2}, \texttt{T2C}, \texttt{T2B},
+% \texttt{T2A}, if any.
+%
+%
+% \begin{macrocode}
+\def\reserved@a#1#2{%
+ \edef\reserved@b{#1}%
+ \edef\reserved@c{#2}%
+ \ifx\reserved@b\reserved@c
+ \let\cyrillicencoding\reserved@c
+ \fi}
+\def\cdp@elt#1#2#3#4{%
+ \reserved@a{#1}{OT2}%
+ \reserved@a{#1}{LWN}%
+ \reserved@a{#1}{LCY}%
+ \reserved@a{#1}{X2}%
+ \reserved@a{#1}{T2C}%
+ \reserved@a{#1}{T2B}%
+ \reserved@a{#1}{T2A}}
+\cdp@list
+% \end{macrocode}
+%
+% Now, if |\cyrillicencoding| is undefined, then the user did not
+% load any of supported encodings. So, we have to set
+% |\cyrillicencoding| to some default value. We test the presence
+% of the encoding definition files in the order from less
+% preferable to more preferable encodings. We use the lowercase
+% names (i.e., \file{lcyenc.def} instead of \file{LCYenc.def}).
+%
+% \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+ \IfFileExists{ot2enc.def}{\def\cyrillicencoding{OT2}}\relax
+ \IfFileExists{lwnenc.def}{\def\cyrillicencoding{LWN}}\relax
+ \IfFileExists{lcyenc.def}{\def\cyrillicencoding{LCY}}\relax
+ \IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax
+ \IfFileExists{t2cenc.def}{\def\cyrillicencoding{T2C}}\relax
+ \IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax
+ \IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax
+% \end{macrocode}
+%
+% If |\cyrillicencoding| is still undefined, then the user seems
+% not to have a properly installed distribution. A fatal error.
+%
+% \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+ \PackageError{babel}%
+ {No Cyrillic encoding definition files were found}%
+ {Your installation is incomplete. \MessageBreak
+ You need at least one of the following files: \MessageBreak
+ \space\space
+ x2enc.def, t2aenc.def, t2benc.def, t2cenc.def, \MessageBreak
+ \space\space
+ lcyenc.def, lwnenc.def, ot2enc.def.}%
+ \else
+% \end{macrocode}
+%
+% We avoid |\usepackage[\cyrillicencoding]{fontenc}| because we
+% don't want to force the switch of |\encodingdefault|.
+%
+% \begin{macrocode}
+ \lowercase
+ \expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{verbatim}
+% \PackageInfo{babel}
+% {Using `\cyrillicencoding' as a default Cyrillic encoding}%
+% \end{verbatim}
+% \unskip
+%
+%
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Bulgarian}{%
+ \fontencoding\cyrillicencoding\selectfont
+ \let\encodingdefault\cyrillicencoding
+ \expandafter\set@hyphenmins\bulgarianhyphenmins
+ \language\l@bulgarian}
+\DeclareRobustCommand{\English}{%
+ \fontencoding\latinencoding\selectfont
+ \let\encodingdefault\latinencoding
+ \expandafter\set@hyphenmins\englishhyphenmins
+ \language\l@english}
+\let\Bul\Bulgarian
+\let\Bg\Bulgarian
+\let\cyrillictext\Bulgarian
+\let\cyr\Bulgarian
+\let\Eng\English
+\def\selectenglanguage{\selectlanguage{english}}
+\def\selectbglanguage{\selectlanguage{bulgarian}}
+% \end{macrocode}
+%
+% Since the \texttt{X2} encoding does not contain Latin letters,we
+% should make some redefinitions of \LaTeX\ macros which implicitly
+% produce Latin letters.
+%
+%
+% \begin{macrocode}
+\expandafter\ifx\csname T@X2\endcsname\relax\else
+% \end{macrocode}
+%
+% We put |\latinencoding| in braces to avoid problems with |\@alph|
+% inside minipages (e.g., footnotes inside minipages) where
+% |\@alph| is expanded and we get for example `|\fontencoding OT1|'
+% (|\fontencoding| is robust).
+%
+% \changes{bulgarian-1.0c}{2003/06/14}{Added missing closing brace}
+% \begin{macrocode}
+ \def\@Alph@eng#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or
+ X\or Y\or Z\else \@ctrerr\fi}}%
+ \def\@alph@eng#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or
+ x\or y\or z\else \@ctrerr\fi}}%
+ \let\@Alph\@Alph@eng
+ \let\@alph\@alph@eng
+% \end{macrocode}
+%
+% Unfortunately, the commands |\AA| and |\aa| are not encoding
+% dependent in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are
+% defined as |\r{A}| and |\r{a}|. This leads to unpredictable
+% results when the font encoding does not contain the Latin letters
+% `A' and `a' (like \texttt{X2}).
+%
+% \begin{macrocode}
+ \DeclareTextSymbolDefault{\AA}{OT1}
+ \DeclareTextSymbolDefault{\aa}{OT1}
+ \DeclareTextCommand{\AA}{OT1}{\r A}
+ \DeclareTextCommand{\aa}{OT1}{\r a}
+\fi
+% \end{macrocode}
+%
+% The following block redefines the character class of uppercase
+% Greek letters and some accents, if it is equal to 7 (variable
+% family), to avoid incorrect results if the font encoding in some
+% math family does not contain these characters in places of OT1
+% encoding. The code was taken from |amsmath.dtx|. See comments and
+% further explanation there.
+%
+% \begin{macrocode}
+\begingroup\catcode`\"=12
+% uppercase greek letters:
+\def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax
+ "0000\@nil#1}
+\def\@tempb#1"#2#3#4#5#6\@nil#7{%
+\ifnum"#2=7 \count@"1#3#4#5\relax
+\ifnum\count@<"1000 \else \global\mathchardef#7="0#3#4#5\relax \fi
+ \fi}
+\@tempa\Gamma\@tempa\Delta\@tempa\Theta\@tempa\Lambda\@tempa\Xi
+\@tempa\Pi\@tempa\Sigma\@tempa\Upsilon\@tempa\Phi\@tempa\Psi
+\@tempa\Omega
+% some accents:
+\def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent}
+\expandafter\@tempa\hat\relax\relax\@nil
+\ifx\@tempb\@tempc
+\def\@tempa#1\@nil{#1}%
+\def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}%
+\def\do#1"#2{}
+\def\@tempd#1{\expandafter\@tempb#1\@nil
+ \ifnum\@tempc>"FFF
+ \xdef#1{\mathaccent"\expandafter\do\meaning\@tempc\space}%
+ \fi}
+\@tempd\hat\@tempd\check\@tempd\tilde\@tempd\acute\@tempd\grave
+\@tempd\dot\@tempd\ddot\@tempd\breve\@tempd\bar
+\fi
+\endgroup
+% \end{macrocode}
+%
+% The user should use the \pkg{inputenc} package when any 8-bit
+% Cyrillic font encoding is used, selecting one of the Cyrillic
+% input encodings. We do not assume any default input encoding, so
+% the user should explicitly call the \pkg{inputenc} package by
+% |\usepackage{inputenc}|. We also removed |\AtBeginDocument|, so
+% \pkg{inputenc} should be used before \babel.
+%
+% \begin{macrocode}
+\@ifpackageloaded{inputenc}{}{%
+\def\reserved@a{LWN}%
+\ifx\reserved@a\cyrillicencoding\else
+\def\reserved@a{OT2}%
+\ifx\reserved@a\cyrillicencoding\else
+\PackageWarning{babel}%
+{No input encoding specified for Bulgarian language}\fi\fi}
+% \end{macrocode}
+%
+% Now we define two commands that offer the possibility to switch
+% between Cyrillic and Roman encodings.
+%
+% \begin{macro}{\cyrillictext}
+% \begin{macro}{\latintext}
+%
+% The command |\cyrillictext| will switch from Latin font encoding
+% to the Cyrillic font encoding, the command |\latintext| switches
+% back. This assumes that the `normal' font encoding is a Latin
+% one. These commands are \emph{declarations}, for shorter peaces
+% of text the commands |\textlatin| and |\textcyrillic| can be
+% used.
+%
+% We comment out |\latintext| since it is defined in the core of
+% babel (babel.def). We add the shorthand |\lat| for |\latintext|.
+% Note that |\cyrillictext| has been defined above.
+%
+% \begin{macrocode}
+% \DeclareRobustCommand{\latintext}{%
+% \fontencoding{\latinencoding}\selectfont
+% \def\encodingdefault{\latinencoding}}
+\let\lat\latintext
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textcyrillic}
+% \begin{macro}{\textlatin}
+%
+% These commands take an argument which is then typeset using the
+% requested font encoding.
+% |\textlatin| is commented out since it is defined in the core of
+% babel. (It is defined there with |\DeclareRobustCommand| instead.)
+%
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+% \DeclareTextFontCommand{\textlatin}{\latintext}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Bulgarian language.
+%
+% \begin{macro}{\captionsbulgarian}
+%
+% The macro |\captionsbulgarian| defines all strings used in the
+% four standard document classes provided with \LaTeX. The two
+% commands |\cyr| and |\lat| activate Cyrillic resp. Latin encoding.
+%
+% \begin{macrocode}
+\addto\captionsbulgarian{%
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrg\cyro\cyrv\cyro\cyrr}}%
+ \def\refname{%
+ {\cyr\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+ \def\abstractname{%
+ {\cyr\CYRA\cyrb\cyrs\cyrt\cyrr\cyra\cyrk\cyrt}}%
+ \def\bibname{%
+ {\cyr\CYRB\cyri\cyrb\cyrl\cyri\cyro\cyrg\cyrr\cyra\cyrf\cyri\cyrya}}%
+ \def\chaptername{%
+ {\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre}}%
+ \def\contentsname{%
+ {\cyr\CYRS\cyrhrdsn\cyrd\cyrhrdsn\cyrr\cyrzh\cyra\cyrn\cyri\cyre}}%
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyrhrdsn\cyrk\ \cyrn\cyra\ \cyrf\cyri\cyrg\cyru\cyrr\cyri\cyrt\cyre}}%
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyrhrdsn\cyrk\ \cyrn\cyra\ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyri\cyrt\cyre}}%
+ \def\indexname{%
+ {\cyr\CYRA\cyrz\cyrb\cyru\cyrch\cyre\cyrn\ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyre\cyrn\ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl}}%
+ \def\figurename{%
+ {\cyr\CYRF\cyri\cyrg\cyru\cyrr\cyra}}%
+ \def\tablename{%
+ {\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{%
+ {\cyr\CYRCH\cyra\cyrs\cyrt}}%
+ \def\enclname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyrya}}%
+ \def\ccname{%
+ {\cyr\cyrk\cyro\cyrp\cyri\cyrya}}%
+ \def\headtoname{%
+ {\cyr\CYRZ\cyra}}%
+ \def\pagename{%
+ {\cyr\CYRS\cyrt\cyrr.}}%
+ \def\seename{%
+ {\cyr\cyrv\cyrzh.}}%
+ \def\alsoname{%
+ {\cyr\cyrv\cyrzh.\ \cyrs\cyrhrdsn\cyrshch\cyro\ \cyri}}%
+ \def\proofname{Proof}% <-- Needs translation
+ \def\glossaryname{Glossary}% <-- Needs translation
+}
+% \end{macrocode}
+% \end{macro}
+%%
+% \begin{macro}{\datebulgarian}
+%
+% The macro |\datebulgarian| redefines the command |\today| to
+% produce Bulgarian dates.
+% It also provides the command |\todayRoman| which produces the
+% date with the month in capital roman numerals, a popular format
+% for dates in Bulgarian.
+%
+% \begin{macrocode}
+\def\datebulgarian{%
+ \def\month@bulgarian{\ifcase\month\or
+ \cyrya\cyrn\cyru\cyra\cyrr\cyri\or
+ \cyrf\cyre\cyrv\cyrr\cyru\cyra\cyrr\cyri\or
+ \cyrm\cyra\cyrr\cyrt\or
+ \cyra\cyrp\cyrr\cyri\cyrl\or
+ \cyrm\cyra\cyrishrt\or
+ \cyryu\cyrn\cyri\or
+ \cyryu\cyrl\cyri\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\or
+ \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrv\cyrr\cyri\or
+ \cyro\cyrk\cyrt\cyro\cyrm\cyrv\cyrr\cyri\or
+ \cyrn\cyro\cyre\cyrm\cyrv\cyrr\cyri\or
+ \cyrd\cyre\cyrk\cyre\cyrm\cyrv\cyrr\cyri\fi}%
+ \def\month@Roman{\expandafter\@Roman\month}%
+ \def\today{\number\day~\month@bulgarian\ \number\year~\cyrg.}%
+ \def\todayRoman{\number\day.\,\month@Roman.\,\number\year~\cyrg.}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\todayRoman}
+%
+% The month is often written with roman numbers in Bulgarian dates.
+% Here we define date in this format:
+%
+% \begin{macrocode}
+\def\Romannumeral#1{\uppercase\expandafter{\romannumeral #1}}
+\def\todayRoman{\number\day.\Romannumeral{\month}.\number\year~\cyrg.}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\extrasbulgarian}
+%
+% The macro |\extrasbulgarian| will perform all the extra
+% definitions needed for the Bulgarian language.
+% The macro |\noextrasbulgarian| is used to cancel the actions of
+% |\extrasbulgarian|.
+%
+% The first action we define is to switch on the selected Cyrillic
+% encoding whenever we enter `bulgarian'.
+%
+% \begin{macrocode}
+\addto\extrasbulgarian{\cyrillictext}
+% \end{macrocode}
+%
+% When the encoding definition file was processed by \LaTeX\ the
+% current font encoding is stored in |\latinencoding|, assuming
+% that \LaTeX\ uses \texttt{T1} or \texttt{OT1} as
+% default. Therefore we switch back to |\latinencoding| whenever
+% the Bulgarian language is no longer `active'.
+%
+% \begin{macrocode}
+\addto\noextrasbulgarian{\latintext}
+% \end{macrocode}
+%
+% For Bulgarian the \texttt{"} character also is made active.
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+% \end{macrocode}
+%
+% The code above is necessary because we need extra active
+% characters. The character |"| is used as indicated in
+% table~\ref{tab:bulgarian-quote}. We specify that the Bulgarian
+% group of shorthands should be used.
+%
+% \begin{macrocode}
+\addto\extrasbulgarian{\languageshorthands{bulgarian}}
+% \end{macrocode}
+%
+% These characters are `turned on' once, later their definition may
+% vary.
+%
+% \begin{macrocode}
+\addto\extrasbulgarian{%
+ \bbl@activate{"}}
+\addto\noextrasbulgarian{%
+ \bbl@deactivate{"}}
+% \end{macrocode}
+%
+% The \texttt{X2} and \texttt{T2*} encodings do not contain
+% |spanish_shriek| and |spanish_query| symbols; as a consequence,
+% the ligatures `|?`|' and `|!`|' do not work with them (these
+% characters are useless for Cyrillic texts anyway). But we define
+% the shorthands to emulate these ligatures (optionally).
+%
+% We do not use |\latinencoding| here (but instead explicitly use
+% \texttt{OT1}) because the user may choose \texttt{T2A} to be the
+% primary encoding, but it does not contain these characters.
+%
+% \begin{macrocode}
+%<*spanishligs>
+\declare@shorthand{bulgarian}{?`}{\UseTextSymbol{OT1}\textquestiondown}
+\declare@shorthand{bulgarian}{!`}{\UseTextSymbol{OT1}\textexclamdown}
+%</spanishligs>
+% \end{macrocode}
+%
+% To be able to define the function of `|"|', we first define a
+% couple of `support' macros.
+%
+% \begin{macro}{\dq}
+%
+% We save the original double quote character in |\dq| to keep it
+% available, the math accent |\"|can now be typed as `|"|'.
+% \changes{bulgarian-1.0c}{2003/04/10}{repaired typo}
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+ \def\@SS{\mathchar"7019}
+ \def\dq{"}}
+\reserved@a
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Now we can define the doublequote macros: german and french
+% quotes. We use definitions of these quotes made in babel.sty.
+% The french quotes are contained in the \texttt{T2*} encodings.
+%
+% \begin{macrocode}
+\declare@shorthand{bulgarian}{"`}{\glqq}
+\declare@shorthand{bulgarian}{"'}{\grqq}
+\declare@shorthand{bulgarian}{"<}{\flqq}
+\declare@shorthand{bulgarian}{">}{\frqq}
+% \end{macrocode}
+%
+% Some additional commands:
+%
+% \begin{macrocode}
+\declare@shorthand{bulgarian}{""}{\hskip\z@skip}
+\declare@shorthand{bulgarian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{bulgarian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{bulgarian}{"|}{%
+\textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+\allowhyphens}{}}
+% \end{macrocode}
+%
+% The next two macros for |"-| and |"---| are somewhat different.
+% We must check whether the second token is a hyphen character:
+%
+% \begin{macrocode}
+\declare@shorthand{bulgarian}{"-}{%
+% \end{macrocode}
+%
+% If the next token is `|-|', we typeset an emdash, otherwise a
+% hyphen sign:
+%
+% \begin{macrocode}
+ \def\bulgarian@sh@tmp{%
+ \if\bulgarian@sh@next-\expandafter\bulgarian@sh@emdash
+ \else\expandafter\bulgarian@sh@hyphen\fi
+ }%
+% \end{macrocode}
+%
+% \TeX\ looks for the next token after the first `|-|': the meaning
+% of this token is written to |\bulgarian@sh@next| and
+% |\bulgarian@sh@tmp| is called.
+%
+% \begin{macrocode}
+ \futurelet\bulgarian@sh@next\bulgarian@sh@tmp}
+% \end{macrocode}
+%
+% Here are the definitions of hyphen and emdash. First the hyphen:
+%
+% \begin{macrocode}
+\def\bulgarian@sh@hyphen{\nobreak\-\bbl@allowhyphens}
+% \end{macrocode}
+%
+% For the emdash definition, there are the two parameters: we must
+% `eat' two last hyphen signs of our emdash \dots :
+%
+% \begin{macrocode}
+\def\bulgarian@sh@emdash#1#2{\cdash-#1#2}
+% \end{macrocode}
+%
+% \begin{macro}{\cdash}
+%
+% \dots\ these two parameters are useful for another macro:
+% |\cdash|:
+%
+% \begin{macrocode}
+\ifx\cdash\undefined % should be defined earlier
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def empb@{~}\def empc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}
+% \end{macrocode}
+%
+% second parameter (or third for |\cdash|) shows what kind of emdash
+% to create in next step
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"---| & ordinary (plain) Cyrillic emdash inside text:
+% an unbreakable thinspace will be inserted before only in case of
+% a \textit{space} before the dash (it is necessary for dashes after
+% display maths formulae: there could be lists, enumerations etc.\
+% started with ``---where $a$ is ...'' i.e., the dash starts a line).
+% (Firstly there were planned rather soft rules for user:he may put
+% a space before the dash or not. But it is difficult to place this
+% thinspace automatically, i.e., by checking modes because after
+% display formulae \TeX{} uses horizontal mode. Maybe there is a
+% misunderstanding? Maybe there is another way?) After a dash
+% a breakable thinspace is always placed; \\
+% \end{tabular}
+% \end{center}
+%
+%
+% \begin{macrocode}
+% What is more grammatically: .2em or .2\fontdimen6\font?
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+\cyrdash\hskip.2em\ignorespaces}%
+% \end{macrocode}
+%
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--~| & emdash in compound names or surnames
+% (like Mendeleev--Klapeiron); this dash has no space characters
+% around; after the dash some space is added
+% |\exhyphenalty| \\
+% \end{tabular}
+% \end{center}
+%
+% \begin{macrocode}
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+% \end{macrocode}
+%
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--*| & for denoting direct speech (a space like |\enskip|
+% must follow the emdash); \\
+% \end{tabular}
+% \end{center}
+%
+% \begin{macrocode}
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+%\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\cyrdash}
+%
+% Finally the macro for ``body'' of the Cyrillic emdash.
+% The |\cyrdash| macro will be defined in case this macro hasn't
+% been defined in a fontenc file. For T2*fonts, cyrdash will be
+% placed in the code of the English emdash thus it uses ligature
+% |---|.
+%
+% \begin{macrocode}
+% Is there an IF necessary?
+\ifx\cyrdash\undefined
+\def\cyrdash{\hbox to.8em{--\hss--}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Here a really new macro---to place thinspace between initials.
+% This macro used instead of |\,| allows hyphenation in the
+% following surname.
+%
+% \begin{macrocode}
+\declare@shorthand{bulgarian}{",}{\nobreak\hskip.2em\ignorespaces}
+% \end{macrocode}
+%
+% The Bulgarian hyphenation patterns can be used with
+% |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{bulgarian-1.0b}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+\fi
+% \end{macrocode}
+%
+% Now the action |\extrasbulgarian| has to execute is to make sure
+% that the command |\frenchspacing| is in effect. If this is not
+% the case the execution of |\noextrasbulgarian| will switch it off
+% again.
+%
+% \begin{macrocode}
+\addto\extrasbulgarian{\bbl@frenchspacing}
+\addto\noextrasbulgarian{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% Make the double quotes produce the traditional quotes
+% used in Bulgarian texts (these are the German quotes).
+%
+% \begin{macrocode}
+% \initiate@active@char{`}
+% \initiate@active@char{'}
+% \addto\extrasbulgarian{%
+% \bbl@activate{`}}
+% \addto\extrasbulgarian{%
+% \bbl@activate{'}}
+% \addto\noextrasbulgarian{%
+% \bbl@deactivate{`}}
+% \addto\noextrasbulgarian{%
+% \bbl@deactivate{'}}
+% \def\mlron{\bbl@activate{`}\bbl@activate{'}}
+% \def\mlroff{\bbl@deactivate{`}\bbl@deactivate{'}}
+% \declare@shorthand{bulgarian}{``}{\glqq}
+% \declare@shorthand{bulgarian}{''}{\grqq}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Next we add a new enumeration style for Bulgarian manuscripts with
+% Cyrillic letters,and later on we define some math operator names in
+% accordance with Bulgarian typesetting traditions.
+%
+% \begin{macro}{\@Alph@bul}
+%
+% We begin by defining |\@Alph@bul| which works like |\@Alph|, but
+% produces (uppercase) Cyrillic letters intead of Latin ones. The
+% letters ISHRT, HRDSN and SFTSN are skipped, as usual for such
+% enumeration.
+%
+% \begin{macrocode}
+\def\enumBul{\let\@Alph\@Alph@bul \let\@alph\@alph@bul}
+\def\enumEng{\let\@Alph\@Alph@eng \let\@alph\@alph@eng}
+\def\enumLat{\let\@Alph\@Alph@eng \let\@alph\@alph@eng}
+\addto\extrasbulgarian{\enumBul}
+\addto\noextrasbulgarian{\enumLat}
+\def\@Alph@bul#1{%
+ \ifcase#1\or
+ \CYRA\or \CYRB\or \CYRV\or \CYRG\or \CYRD\or \CYRE\or \CYRZH\or
+ \CYRZ\or \CYRI\or \CYRK\or \CYRL\or \CYRM\or \CYRN\or \CYRO\or
+ \CYRP\or \CYRR\or \CYRS\or \CYRT\or \CYRU\or \CYRF\or \CYRH\or
+ \CYRC\or \CYRCH\or \CYRSH\or \CYRSHCH\or \CYRYU\or \CYRYA\else
+ \@ctrerr\fi
+ }
+\def\@Alph@eng#1{%
+ \ifcase#1\or
+ A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or
+ N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\else
+ \@ctrerr\fi
+ }
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\@alph@bul}
+%
+% The macro |\@alph@bul| is similar to |\@Alph@bul|;
+% it produces lowercase Bulgarian letters.
+%
+% \begin{macrocode}
+\def\@alph@bul#1{%
+ \ifcase#1\or
+ \cyra\or \cyrb\or \cyrv\or \cyrg\or \cyrd\or \cyre\or \cyrzh\or
+ \cyrz\or \cyri\or \cyrk\or \cyrl\or \cyrm\or \cyrn\or \cyro\or
+ \cyrp\or \cyrr\or \cyrs\or \cyrt\or \cyru\or \cyrf\or \cyrh\or
+ \cyrc\or \cyrch\or \cyrsh\or \cyrshch\or \cyryu\or \cyrya\else
+ \@ctrerr\fi
+ }
+\def\@alph@eng#1{%
+ \ifcase#1\or
+ a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or
+ n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else
+ \@ctrerr\fi
+ }
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Set up default Cyrillic math alphabets. To use Cyrillic letters
+% in math mode user should load the |textmath| package
+% \emph{before} loading fontenc package (or \babel). Note,that by
+% default Cyrillic letters are taken from upright font in math mode
+% (unlike Latin letters).
+%
+% \begin{macrocode}
+%\RequirePackage{textmath}
+\@ifundefined{sym\cyrillicencoding letters}{}{%
+\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
+% \end{macrocode}
+%
+% And we need a few commands to be able to switch to different
+% variants.
+%
+% \begin{macrocode}
+\DeclareMathAlphabet\cyrmathbf\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareMathAlphabet\cyrmathsf\cyrillicencoding
+ \sfdefault\mddefault\updefault
+\DeclareMathAlphabet\cyrmathit\cyrillicencoding
+ \rmdefault\mddefault\itdefault
+\DeclareMathAlphabet\cyrmathtt\cyrillicencoding
+ \ttdefault\mddefault\updefault
+\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding
+ \sfdefault\bfdefault\updefault
+\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding
+ \rmdefault\bfdefault\itdefault
+}
+% \end{macrocode}
+%
+% Some math functions in Bulgarian math books have other names:
+% e.g., \texttt{sinh} in Bulgarian is written as \texttt{sh}
+% etc. So we define a number of new math operators.
+%
+% |\sinh|:
+%
+% \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits}
+% \end{macrocode}
+%
+% |\cosh|:
+%
+% \begin{macrocode}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+% \end{macrocode}
+%
+% |\tan|:
+%
+% \begin{macrocode}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+% \end{macrocode}
+%
+% |\arctan|:
+%
+% \begin{macrocode}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+% \end{macrocode}
+%
+% |\arccot|:
+%
+% \begin{macrocode}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+% \end{macrocode}
+%
+% The following macro conflicts with |\th| defined in Latin~1
+% encoding:
+% |\tanh|:
+% \changes{bulgarian-1.0d}{2004/05/21}{Change definition of \cs{th}
+% only for this language}
+% \begin{macrocode}
+\addto\extrasrussian{%
+ \babel@save{\th}%
+ \let\ltx@th\th
+ \def\th{\textormath{\ltx@th}%
+ {\mathop{\operator@font th}\nolimits}}%
+ }
+% \end{macrocode}
+%
+% |\cot|:
+%
+% \begin{macrocode}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+% \end{macrocode}
+%
+% |\coth|:
+%
+% \begin{macrocode}
+\def\cth{\mathop{\operator@font cth}\nolimits}
+% \end{macrocode}
+%
+% |\csc|:
+%
+% \begin{macrocode}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+% \end{macrocode}
+%
+% This is for compatibility with older Bulgarian packages.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\No}{%
+ \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a configuration
+% file, setting the main language to be switched on at
+% |\begin{document}| and resetting the category code of \texttt{@}
+% to its original value.
+%
+% \begin{macrocode}
+\ldf@finish{bulgarian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/bulgarian.ins b/Master/texmf-dist/source/generic/babel/bulgarian.ins
new file mode 100644
index 00000000000..85fa800211d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/bulgarian.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2000/09/21}
+\def\batchfile{bulgarian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{bulgarian.ldf}{\from{bulgarian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/generic/babel/catalan.dtx b/Master/texmf-dist/source/generic/babel/catalan.dtx
new file mode 100644
index 00000000000..b8185af4df8
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/catalan.dtx
@@ -0,0 +1,712 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{517}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{catalan.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{catalan}
+%\fi
+%\ProvidesFile{catalan.dtx}
+ [2005/03/29 v2.2p Catalan support from the babel system]
+%\iffalse
+%% File `catalan.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Catalan Language Definition File
+%% Copyright (C) 1991 - 2005
+%% by Goncal Badenes <badenes at imec.be>
+%% Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams babel at braams.cistron.nl
+%%
+% This file is part of the babel system, it provides the source
+% code for the Catalan language definition file.
+% This file was developped out of spanish.sty and suggestions by
+% Goncal Badenes <badenes at imec.be> and Joerg Knappen
+% <knappen at vkpmzd.kph.uni-mainz.de>.
+%
+% The file spanish.sty was written by Julio Sanchez,
+% (jsanchez@gmv.es) The code for the catalan language has been
+% removed and now is in this file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{catalan.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{catalan.dtx}
+%
+% \changes{catalan-2.0b}{1993/09/23}{Incorporated the changes from
+% \file{spanish.sty}}
+% \changes{catalan-2.1}{1994/02/27}{Update for \LaTeXe}
+% \changes{catalan-2.1d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{catalan-2.2b}{1995/07/04}{Made the activation of the grave
+% and acute accents optional}
+% \changes{catalan-2.2c}{1995/07/08}{Removed the use of the tilde for
+% catalan}
+% \changes{catalan-2.2f}{1996/07/13}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{catalan-2.2g}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+% \changes{catalan-2.2k}{1999/05/05}{A wrong \cs{changes} entry made
+% typesetting impossible}
+%
+% \section{The Catalan language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language-specific macro's for the
+% Catalan language.
+%
+% For this language only the double quote character (|"|) is made
+% active by default. In table~\ref{tab:catalan-quote-def} an
+% overview is given of the new macros defined and the new meanings
+% of |"|. Additionally to that, the user can explicitly activate
+% the acute accent or apostrophe (|'|) and/or the grave accent
+% (|`|) characters by using the \Lopt{activeacute} and
+% \Lopt{activegrave} options. In that case, the definitions shown
+% in table~\ref{tab:catalan-quote-opt} also become
+% available\footnote{Please note that if the acute accent character
+% is active, it is necessary to take special care of coding
+% apostrophes in a way which cannot be confounded with
+% accents. Therefore, it is necessary to type \texttt{l'\{\}estri}
+% instead of \texttt{l'estri}.}.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% |\l.l| & geminated-l digraph (similar to
+% l$\cdot$l). |\L.L| produces the uppercase version.\\
+% |\lgem| & geminated-l digraph (similar to
+% l$\cdot$l). |\Lgem| produces the uppercase version.\\
+% |\up| & Macro to help typing raised ordinals, like {1\raise
+% 1ex\hbox{\small er}}. Takes one argument.\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word. \\
+% |"i| & i with diaeresis, allowing hyphenation
+% in the rest of the word. Valid for the following vowels:
+% i, u (both lowercase and uppercase).\\
+% |"c| & c-cedilla (\c{c}). Valid for both uppercase and
+% lowercase c.\\
+% |"l| & geminated-l digraph (similar to
+% l$\cdot$l). Valid for both uppercase and lowercase l.\\
+% |"<| & French left double quotes (similar to $<<$).\\
+% |">| & French right double quotes (similar to $>>$).\\
+% |"-| & explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% \verb="|= & disable ligature at this position.
+% \end{tabular}
+% \caption{Extra definitions made by file \file{catalan.ldf}
+% (activated by default)}
+% \label{tab:catalan-quote-def}
+% \end{table}
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% |'e| & acute accented a, allowing hyphenation
+% in the rest of the word. Valid for the following
+% vowels: e, i, o, u (both lowercase and uppercase).\\
+% |`a| & grave accented a, allowing hyphenation
+% in the rest of the word. Valid for the following
+% vowels: a, e, o (both lowercase and uppercase).
+% \end{tabular}
+% \caption{Extra definitions made by file \file{catalan.ldf}
+% (activated only when using the options \Lopt{activeacute} and
+% \Lopt{activegrave})}
+% \label{tab:catalan-quote-opt}
+% \end{table}
+% These active accents characters behave according to their original
+% definitions if not followed by one of the characters indicated in
+% that table.
+%
+% \StopEventually{}
+%
+% \changes{catalan-2.0}{1993/07/11}{Removed code to load
+% \file{latexhax.com}}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{catalan-2.2g}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{catalan}\captionscatalan
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{catalan} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@catalan| to see whether we have to do something here.
+%
+% \changes{catalan-2.1d}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@catalan\@undefined
+ \@nopatterns{Catalan}
+ \adddialect\l@catalan0
+\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Catalan language.
+%
+% \begin{macro}{\catalanhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{catalan-2.2n}{2001/02/19}{Set the hyphenation parameters
+% both to two as required by \texttt{cahyph.tex}}
+% \begin{macrocode}
+\providehyphenmins{catalan}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionscatalan}
+% The macro |\captionscatalan| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{catalan-1.1}{1993/07/11}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{catalan-2.0}{1993/07/11}{Added some names}
+% \changes{catalan-2.1d}{1994/11/09}{Added a few missing translations}
+% \changes{catalan-2.2b}{1995/07/03}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{catalan-2.2d}{1995/07/10}{added translation of Proof}
+% \changes{catalan-2.2d}{1995/11/15}{Translations revised}
+% \changes{catalan-2.2m}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{catalan-2.2p}{2003/11/17}{Inserted translation for
+% Glossary}
+% \begin{macrocode}
+\addto\captionscatalan{%
+ \def\prefacename{Pr\`oleg}%
+ \def\refname{Refer\`encies}%
+ \def\abstractname{Resum}%
+ \def\bibname{Bibliografia}%
+ \def\chaptername{Cap\'{\i}tol}%
+ \def\appendixname{Ap\`endix}%
+ \def\contentsname{\'Index}%
+ \def\listfigurename{\'Index de figures}%
+ \def\listtablename{\'Index de taules}%
+ \def\indexname{\'Index alfab\`etic}%
+ \def\figurename{Figura}%
+ \def\tablename{Taula}%
+ \def\partname{Part}%
+ \def\enclname{Adjunt}%
+ \def\ccname{C\`opies a}%
+ \def\headtoname{A}%
+ \def\pagename{P\`agina}%
+ \def\seename{Vegeu}%
+ \def\alsoname{Vegeu tamb\'e}%
+ \def\proofname{Demostraci\'o}%
+ \def\glossaryname{Glossari}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datecatalan}
+% The macro |\datecatalan| redefines the command |\today| to
+% produce Catalan dates. Months are written in
+% lowercase\footnote{This seems to be the common practice. See for
+% example: E.~Coromina, \emph{El 9 Nou: Manual de redacci\'o i
+% estil}, Ed.~Eumo, Vic, 1993}.
+% \changes{catalan-2.2b}{1995/06/18}{Month names in lowercase}
+% \changes{catalan-2.2i}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{catalan-2.2i}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\datecatalan{%
+ \def\today{\number\day~\ifcase\month\or
+ de gener\or de febrer\or de mar\c{c}\or d'abril\or de maig\or
+ de juny\or de juliol\or d'agost\or de setembre\or d'octubre\or
+ de novembre\or de desembre\fi
+ \space de~\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrascatalan}
+% \changes{catalan-2.0}{1993/07/11}{Macro completely rewritten}
+% \changes{catalan-2.2a}{1995/03/11}{Handling of active characters
+% completely rewritten}
+%
+% \begin{macro}{\noextrascatalan}
+% \changes{catalan-2.0}{1993/07/11}{Macro completely rewritten}
+%
+% The macro |\extrascatalan| will perform all the extra definitions
+% needed for the Catalan language. The macro |\noextrascatalan| is
+% used to cancel the actions of |\extrascatalan|.
+%
+% \changes{catalan-2.2e}{1995/11/10}{Now give the apostrophe a
+% lowercase code}
+% To improve hyphenation we give the grave character (\texttt{'}) a
+% non-zero lower case code; when we do that \TeX\ will find more
+% breakpoints in words that contain this character in its r\^ole as
+% apostrophe.
+% \begin{macrocode}
+\addto\extrascatalan{%
+ \lccode`'=`'}
+\addto\noextrascatalan{%
+ \lccode`'=0}
+% \end{macrocode}
+%
+% For Catalan, some characters are made active or are redefined. In
+% particular, the \texttt{"} character receives a new meaning; this
+% can also happen for the \texttt{'} character and the \texttt{`}
+% character when the options \Lopt{activegrave} and/or
+% \Lopt{activeacute} are specified.
+%
+% \changes{catalan-2.2b}{1995/07/07}{Make activating the accent
+% characters optional}
+% \changes{catalan-2.2e}{1995/08/17}{Need to split up the
+% \cs{@ifpackagewith} statements}
+% \begin{macrocode}
+\addto\extrascatalan{\languageshorthands{catalan}}
+\initiate@active@char{"}
+\addto\extrascatalan{\bbl@activate{"}}
+% \end{macrocode}
+% Because the grave character is being used in constructs such as
+% |\catcode``=\active| it needs to have it's original category code%''
+% when the auxiliary file is being read. Note that this file is
+% read twice, once at the beginning of the document; then there is
+% no problem; but the second time it is read at the end of the
+% document to check whether any labels changes. It's this second
+% time round that the actived grave character leads to error
+% messages.
+% \changes{catalan-2.2l}{1999/11/29}{Make sure that the grave accent
+% has catcode 12 \emph{before} it is made \cs{active}}
+% \begin{macrocode}
+\@ifpackagewith{babel}{activegrave}{%
+ \AtBeginDocument{%
+ \if@filesw\immediate\write\@auxout{\catcode096=12}\fi}
+ \initiate@active@char{`}%
+ }{}
+\@ifpackagewith{babel}{activegrave}{%
+ \addto\extrascatalan{\bbl@activate{`}}%
+ }{}
+\@ifpackagewith{babel}{activeacute}{%
+ \initiate@active@char{'}%
+ }{}
+\@ifpackagewith{babel}{activeacute}{%
+ \addto\extrascatalan{\bbl@activate{'}}%
+ }{}
+% \end{macrocode}
+% Now make sure that the characters that have been turned into
+% shorthanfd characters expand to `normal' characters outside the
+% catalan environment.
+% \changes{catalan-2.2l}{1999/12/16}{Don't forget do deactivate the
+% shorthands}
+% \begin{macrocode}
+\addto\noextrascatalan{\bbl@deactivate{"}}
+\@ifpackagewith{babel}{activegrave}{%
+ \addto\noextrascatalan{\bbl@deactivate{`}}}{}
+\@ifpackagewith{babel}{activeacute}{%
+ \addto\noextrascatalan{\bbl@deactivate{'}}}{}
+% \end{macrocode}
+%
+% \changes{catalan-2.2a}{1995/03/11}{All the code for handling active
+% characters is now moved to \file{babel.def}}
+%
+% Apart from the active characters some other macros get a new
+% definition. Therefore we store the current ones to be able
+% to restore them later.
+% When their current meanings are saved, we can safely redefine
+% them.
+%
+% We provide new definitions for the accent macros when one or
+% both of the options \Lopt{activegrave} or \Lopt{activeacute}
+% were specified.
+%
+% \changes{catalan-2.2h}{1997/01/08}{Added some comment signs to
+% prevent unwanted spaces in the output}
+% \begin{macrocode}
+\addto\extrascatalan{%
+ \babel@save\"%
+ \def\"{\protect\@umlaut}}%
+\@ifpackagewith{babel}{activegrave}{%
+ \babel@save\`%
+ \addto\extrascatalan{\def\`{\protect\@grave}}
+ }{}
+\@ifpackagewith{babel}{activeacute}{%
+ \babel@save\'%
+ \addto\extrascatalan{\def\'{\protect\@acute}}
+ }{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% All the code above is necessary because we need a few extra
+% active characters. These characters are then used as indicated in
+% tables~\ref{tab:catalan-quote-def}
+% and~\ref{tab:catalan-quote-opt}.
+%
+% \begin{macro}{\dieresis}
+% \begin{macro}{\textacute}
+% \changes{catalan-2.1d}{1994/06/26}{Renamed from \cs{acute} as that
+% is a \cs{mathaccent}}
+% \begin{macro}{\textgrave}
+%
+% The original definition of |\"| is stored as |\dieresis|, because
+% the definition of |\"| might not be the default plain \TeX\
+% one. If the user uses \textsc{PostScript} fonts with the Adobe
+% font encoding the \texttt{"} character is not in the same
+% position as in Knuth's font encoding. In this case |\"| will not
+% be defined as |\accent"7F 1|, but as |\accent'310 #1|. Something
+% similar happens when using fonts that follow the Cork
+% encoding. For this reason we save the definition of |\"| and use
+% that in the definition of other macros. We do likewise for |\`|,
+% and |\'|.
+% \begin{macrocode}
+\let\dieresis\"
+\@ifpackagewith{babel}{activegrave}{\let\textgrave\`}{}
+\@ifpackagewith{babel}{activeacute}{\let\textacute\'}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@umlaut}
+% \begin{macro}{\@acute}
+% \begin{macro}{\@grave}
+% We check the encoding and if not using T1, we make the accents
+% expand but enabling hyphenation beyond the accent. If this is the
+% case, not all break positions will be found in words that contain
+% accents, but this is a limitation in \TeX. An unsolved problem
+% here is that the encoding can change at any time. The definitions
+% below are made in such a way that a change between two 256-char
+% encodings are supported, but changes between a 128-char and a
+% 256-char encoding are not properly supported. We check if T1 is
+% in use. If not, we will give a warning and proceed redefining the
+% accent macros so that \TeX{} at least finds the breaks that are
+% not too close to the accent. The warning will only be printed to
+% the log file.
+%
+% \begin{macrocode}
+\ifx\DeclareFontShape\@undefined
+ \wlog{Warning: You are using an old LaTeX}
+ \wlog{Some word breaks will not be found.}
+ \def\@umlaut#1{\allowhyphens\dieresis{#1}\allowhyphens}
+ \@ifpackagewith{babel}{activeacute}{%
+ \def\@acute#1{\allowhyphens\textacute{#1}\allowhyphens}}{}
+ \@ifpackagewith{babel}{activegrave}{%
+ \def\@grave#1{\allowhyphens\textgrave{#1}\allowhyphens}}{}
+\else
+ \ifx\f@encoding\bbl@t@one
+ \let\@umlaut\dieresis
+ \@ifpackagewith{babel}{activeacute}{%
+ \let\@acute\textacute}{}
+ \@ifpackagewith{babel}{activegrave}{%
+ \let\@grave\textgrave}{}
+ \else
+ \wlog{Warning: You are using encoding \f@encoding\space
+ instead of T1.}
+ \wlog{Some word breaks will not be found.}
+ \def\@umlaut#1{\allowhyphens\dieresis{#1}\allowhyphens}
+ \@ifpackagewith{babel}{activeacute}{%
+ \def\@acute#1{\allowhyphens\textacute{#1}\allowhyphens}}{}
+ \@ifpackagewith{babel}{activegrave}{%
+ \def\@grave#1{\allowhyphens\textgrave{#1}\allowhyphens}}{}
+ \fi
+\fi
+% \end{macrocode}
+% If the user setup has extended fonts, the Ferguson macros are
+% required to be defined. We check for their existance and, if
+% defined, expand to whatever they are defined to. For instance,
+% |\'a| would check for the existance of a |\@ac@a| macro. It is
+% assumed to expand to the code of the accented letter. If it is
+% not defined, we assume that no extended codes are available and
+% expand to the original definition but enabling hyphenation beyond
+% the accent. This is as best as we can do. It is better if you
+% have extended fonts or ML-\TeX{} because the hyphenation
+% algorithm can work on the whole word. The following macros are
+% directly derived from ML-\TeX{}.\footnote{A problem is perceived
+% here with these macros when used in a multilingual environment
+% where extended hyphenation patterns are available for some but
+% not all languages. Assume that no extended patterns exist at some
+% site for French and that \file{french.sty} would adopt this
+% scheme too. In that case, \mbox{\texttt{'e}} in French would
+% produce the combined accented letter, but hyphenation around it
+% would be suppressed. Both language options would need an
+% independent method to know whether they have extended patterns
+% available. The precise impact of this problem and the possible
+% solutions are under study.}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{catalan-2.2a}{1995/03/14}{All the code to deal with active
+% characters is now in \file{babel.def}}
+%
+% Now we can define our shorthands: the diaeresis and ``ela
+% geminada'' support,
+% \begin{macrocode}
+\declare@shorthand{catalan}{"i}{\textormath{\@umlaut\i}{\ddot\imath}}
+\declare@shorthand{catalan}{"l}{\lgem{}}
+\declare@shorthand{catalan}{"u}{\textormath{\@umlaut u}{\ddot u}}
+\declare@shorthand{catalan}{"I}{\textormath{\@umlaut I}{\ddot I}}
+\declare@shorthand{catalan}{"L}{\Lgem{}}
+\declare@shorthand{catalan}{"U}{\textormath{\@umlaut U}{\ddot U}}
+% \end{macrocode}
+% cedille,
+% \changes{catalan-2.2c}{1995/07/08}{cedile now produced by double
+% quote shorthand}
+% \begin{macrocode}
+\declare@shorthand{catalan}{"c}{\textormath{\c c}{^{\prime} c}}
+\declare@shorthand{catalan}{"C}{\textormath{\c C}{^{\prime} C}}
+% \end{macrocode}
+% `french' quote characters,
+% \changes{catalan-2.2c}{1995/07/08}{Added shorthands for guillemets}
+% \changes{catalan-2.2i}{1997/04/03}{Removed empty groups after
+% guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{catalan}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{catalan}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% grave accents,
+% \changes{catalan-2.2e}{1996/03/05}{Added `{}` as an axtra shorthand}
+% \begin{macrocode}
+\@ifpackagewith{babel}{activegrave}{%
+ \declare@shorthand{catalan}{`a}{\textormath{\@grave a}{\grave a}}
+ \declare@shorthand{catalan}{`e}{\textormath{\@grave e}{\grave e}}
+ \declare@shorthand{catalan}{`o}{\textormath{\@grave o}{\grave o}}
+ \declare@shorthand{catalan}{`A}{\textormath{\@grave A}{\grave A}}
+ \declare@shorthand{catalan}{`E}{\textormath{\@grave E}{\grave E}}
+ \declare@shorthand{catalan}{`O}{\textormath{\@grave O}{\grave O}}
+ \declare@shorthand{catalan}{``}{\textquotedblleft}%''
+ }{}
+% \end{macrocode}
+% acute accents,
+% \changes{catalan-2.2b}{1995/07/03}{Changed mathmode definition of
+% acute shorthands to expand to a single prime followed by the next
+% character in the input}
+% \changes{catalan-2.2e}{1995/09/05}{Added vertical bar as argument to
+% active acute}
+% \begin{macrocode}
+\@ifpackagewith{babel}{activeacute}{%
+ \declare@shorthand{catalan}{'a}{\textormath{\@acute a}{^{\prime} a}}
+ \declare@shorthand{catalan}{'e}{\textormath{\@acute e}{^{\prime} e}}
+ \declare@shorthand{catalan}{'i}{\textormath{\@acute\i{}}{^{\prime} i}}
+ \declare@shorthand{catalan}{'o}{\textormath{\@acute o}{^{\prime} o}}
+ \declare@shorthand{catalan}{'u}{\textormath{\@acute u}{^{\prime} u}}
+ \declare@shorthand{catalan}{'A}{\textormath{\@acute A}{^{\prime} A}}
+ \declare@shorthand{catalan}{'E}{\textormath{\@acute E}{^{\prime} E}}
+ \declare@shorthand{catalan}{'I}{\textormath{\@acute I}{^{\prime} I}}
+ \declare@shorthand{catalan}{'O}{\textormath{\@acute O}{^{\prime} O}}
+ \declare@shorthand{catalan}{'U}{\textormath{\@acute U}{^{\prime} U}}
+ \declare@shorthand{catalan}{'|}{%
+ \textormath{\csname normal@char\string'\endcsname}{^{\prime}}}
+% \end{macrocode}
+% the acute accent,
+% \changes{catalan-2.2c}{1995/07/08}{Added '{}' as an axtra shorthand,
+% removed 'n as a shorthand}
+% \begin{macrocode}
+ \declare@shorthand{catalan}{''}{%
+ \textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
+ }{}
+% \end{macrocode}
+% and finally, some support definitions
+% \begin{macrocode}
+\declare@shorthand{catalan}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{catalan}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+% \end{macrocode}
+%
+% \begin{macro}{\-}
+%
+% All that is left now is the redefinition of |\-|. The new version
+% of |\-| should indicate an extra hyphenation position, while
+% allowing other hyphenation positions to be generated
+% automatically. The standard behaviour of \TeX\ in this respect is
+% unfortunate for Catalan but not as much as for Dutch or German,
+% where long compound words are quite normal and all one needs is a
+% means to indicate an extra hyphenation position on top of the
+% ones that \TeX\ can generate from the hyphenation
+% patterns. However, the average length of words in Catalan makes
+% this desirable and so it is kept here.
+%
+% \begin{macrocode}
+\addto\extrascatalan{%
+ \babel@save{\-}%
+ \def\-{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lgem}
+% \begin{macro}{\Lgem}
+% \changes{catalan-2.2b}{1995/06/18}{Added support for typing the
+% catalan ``ela geminada'' with the macros \cs{lgem} and \cs{Lgem}}
+% \changes{catalan-2.2f}{1996/09/20}{Added a check for math mode as
+% the use of \cs{lgem} and \cs{Lgem} in math mode is not sensible.}
+%
+% Here we define a macro for typing the catalan ``ela geminada''
+% (geminated l). The macros |\lgem| and |\Lgem| have been chosen
+% for its lowercase and uppercase representation,
+% respectively\footnote{The macro names \cs{ll} and \cs{LL} were
+% not taken because of the fact that \cs{ll} is already used in
+% mathematical mode.}.
+%
+% The code used in the actual macro used is a combination of the
+% one proposed by Feruglio and Fuster\footnote{G.~Valiente and
+% R.~Fuster, Typesetting Catalan Texts with \TeX, \emph{TUGboat}
+% \textbf{14}(3), 1993.} and the proposal\footnote{G. Valiente,
+% Modern Catalan Typographical Conventions, \emph{TUGboat}
+% \textbf{16}(3), 1995.} from Valiente presented at the \TeX\ Users
+% Group Annual Meeting in 1995. This last proposal has not been
+% fully implemented due to its limitation to CM fonts.
+% \begin{macrocode}
+\newdimen\leftllkern \newdimen\rightllkern \newdimen\raiselldim
+\def\lgem{%
+ \ifmmode
+ \csname normal@char\string"\endcsname l%
+ \else
+ \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
+ \setbox0\hbox{l}\setbox1\hbox{l\/}\setbox2\hbox{.}%
+ \advance\raiselldim by \the\fontdimen5\the\font
+ \advance\raiselldim by -\ht2%
+ \leftllkern=-.25\wd0%
+ \advance\leftllkern by \wd1%
+ \advance\leftllkern by -\wd0%
+ \rightllkern=-.25\wd0%
+ \advance\rightllkern by -\wd1%
+ \advance\rightllkern by \wd0%
+ \allowhyphens\discretionary{l-}{l}%
+ {\hbox{l}\kern\leftllkern\raise\raiselldim\hbox{.}%
+ \kern\rightllkern\hbox{l}}\allowhyphens
+ \fi
+ }
+\def\Lgem{%
+ \ifmmode
+ \csname normal@char\string"\endcsname L%
+ \else
+ \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
+ \setbox0\hbox{L}\setbox1\hbox{L\/}\setbox2\hbox{.}%
+ \advance\raiselldim by .5\ht0%
+ \advance\raiselldim by -.5\ht2%
+ \leftllkern=-.125\wd0%
+ \advance\leftllkern by \wd1%
+ \advance\leftllkern by -\wd0%
+ \rightllkern=-\wd0%
+ \divide\rightllkern by 6%
+ \advance\rightllkern by -\wd1%
+ \advance\rightllkern by \wd0%
+ \allowhyphens\discretionary{L-}{L}%
+ {\hbox{L}\kern\leftllkern\raise\raiselldim\hbox{.}%
+ \kern\rightllkern\hbox{L}}\allowhyphens
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\l.l}
+% \begin{macro}{\L.L}
+% \changes{catalan-2.2e}{1996/06/26}{Added redefinition of \cs{l} and
+% \cs{L}}
+% It seems to be the most natural way of entering the ``ela
+% geminda'' to use the sequences |\l.l| and |\L.L|. These are not
+% really macro's by themselves but the macros |\l| and |\L| with
+% delimited arguments. Therefor we define two macros that check if
+% the next character is a period. If not the ``polish l'' will be
+% typeset, otherwise a ``ela geminada'' will be typeset and the
+% next two tokens will be `eaten'.
+% \changes{catalan-2.2o}{2003/09/19}{Postpone the redefinition of
+% \cs{l} and \cs{L} until begin document to prevent overwriting by
+% fontenc}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \let\lslash\l
+ \let\Lslash\L
+ \DeclareRobustCommand\l{\@ifnextchar.\bbl@l\lslash}
+ \DeclareRobustCommand\L{\@ifnextchar.\bbl@L\Lslash}}
+\def\bbl@l#1#2{\lgem}
+\def\bbl@L#1#2{\Lgem}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\up}
+%
+% A macro for typesetting things like 1\raise1ex\hbox{\small er} as
+% proposed by Raymon Seroul\footnote{This macro has been borrowed
+% from francais.dtx}.
+% \changes{catalan-2.2b}{1995/06/18}{Added definition of macro
+% \cs{up}, which can be used to type ordinals}
+% \changes{catalan-2.2e}{1996/02/29}{Now use \cs{textsuperscript} and
+% make \cs{up} robust}
+% \begin{macrocode}
+\DeclareRobustCommand*{\up}[1]{\textsuperscript{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{catalan-2.2g}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{catalan}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/catalan.ins b/Master/texmf-dist/source/generic/babel/catalan.ins
new file mode 100644
index 00000000000..982e9b8bbaf
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/catalan.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{catalan.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{catalan.ldf}{\from{catalan.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/croatian.dtx b/Master/texmf-dist/source/generic/babel/croatian.dtx
new file mode 100644
index 00000000000..3389033b0b4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/croatian.dtx
@@ -0,0 +1,226 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{87}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{croatian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{croatian}
+%\fi
+%\ProvidesFile{croatian.dtx}
+ [2005/03/29 v1.3l Croatian support from the babel system]
+%\iffalse
+%% File `croatian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Croatian language definition file. A contribution
+% was made by Alan Pai\'{c} (paica@cernvm.cern.ch)
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{croatian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{croatian.dtx}
+%
+% \changes{croatian-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{croatian-1.0c}{1992/01/25}{Removed some typos}
+% \changes{croatian-1.1}{1992/02/15}{Brought up-to-date with babel 3.2a}
+% \changes{croatian-1.3}{1994/02/27}{Update for \LaTeXe}
+% \changes{croatian-1.3g}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Croatian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Alan Pai\'{c}
+% (\texttt{paica@cernvm.cern.ch}).} defines all the
+% language definition macros for the Croatian language.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{croatian-1.3g}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{croatian}\captionscroatian
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{croatian} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@croatian| to see whether we have to do something here.
+%
+% \changes{croatian-1.0b}{1991/10/07}{Removed use of
+% \cs{@ifundefined}}
+% \changes{croatian-1.1}{1992/02/15}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \begin{macrocode}
+\ifx\l@croatian\@undefined
+ \@nopatterns{Croatian}
+ \adddialect\l@croatian0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Croatian language.
+%
+% \begin{macro}{\captionscroatian}
+% The macro |\captionscroatian| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{croatian-1.1}{1992/02/15}{Added \cs{seename},
+% \cs{alsoname} and \cs{prefacename}}
+% \changes{croatian-1.2}{1993/07/11}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{croatian-1.3d}{1995/05/08}{Added a few translations}
+% \changes{croatian-1.3e}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{croatian-1.3f}{1996/01/18}{Added translation of Proof}
+% \changes{croatian-1.3i}{1997/09/11}{Replaced some of the
+% translations with `better' words}
+% \changes{croatian-1.3k}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{croatian-1.3l}{2003/11/17}{Inserted translation for Glossary}
+% \begin{macrocode}
+\addto\captionscroatian{%
+ \def\prefacename{Predgovor}%
+ \def\refname{Literatura}%
+ \def\abstractname{Sa\v{z}etak}%
+ \def\bibname{Bibliografija}%
+ \def\chaptername{Poglavlje}%
+ \def\appendixname{Dodatak}%
+ \def\contentsname{Sadr\v{z}aj}%
+ \def\listfigurename{Popis slika}%
+ \def\listtablename{Popis tablica}%
+ \def\indexname{Indeks}%
+ \def\figurename{Slika}%
+ \def\tablename{Tablica}%
+ \def\partname{Dio}%
+ \def\enclname{Prilozi}%
+ \def\ccname{Kopije}%
+ \def\headtoname{Prima}%
+ \def\pagename{Stranica}%
+ \def\seename{Vidjeti}%
+ \def\alsoname{Vidjeti i}%
+ \def\proofname{Dokaz}%
+ \def\glossaryname{Kazalo}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datecroatian}
+% The macro |\datecroatian| redefines the command |\today| to
+% produce Croatian dates.
+% \changes{croatian-1.3f}{1996/01/18}{in croatian language, the
+% genitive for the name of the month has to be used}
+% \changes{croatian-1.3h}{1997/02/06}{\texttt{sijev\{c\}nja} should be
+% \texttt{seij\cs{v}\{c\}nja} and there should be a period after
+% the year}
+% \changes{croatian-1.3i}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{croatian-1.3i}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \changes{croatian-1.3j}{1999/03/12}{changed \cs{od} into \cs{or}}
+% \begin{macrocode}
+\def\datecroatian{%
+ \def\today{\number\day.~\ifcase\month\or
+ sije\v{c}nja\or velja\v{c}e\or o\v{z}ujka\or travnja\or svibnja\or
+ lipnja\or srpnja\or kolovoza\or rujna\or listopada\or studenog\or
+ prosinca\fi \space \number\year.}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrascroatian}
+% \begin{macro}{\noextrascroatian}
+% The macro |\extrascroatian| will perform all the extra
+% definitions needed for the Croatian language. The macro
+% |\noextrascroatian| is used to cancel the actions of
+% |\extrascroatian|. For the moment these macros are empty but
+% they are defined for compatibility with the other language
+% definition files.
+%
+% \begin{macrocode}
+\addto\extrascroatian{}
+\addto\noextrascroatian{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{croatian-1.3g}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{croatian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/croatian.ins b/Master/texmf-dist/source/generic/babel/croatian.ins
new file mode 100644
index 00000000000..babb296ae01
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/croatian.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{croatian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{croatian.ldf}{\from{croatian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/czech.dtx b/Master/texmf-dist/source/generic/babel/czech.dtx
new file mode 100644
index 00000000000..16f72d3f9bc
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/czech.dtx
@@ -0,0 +1,276 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{190}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{czech.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{czech}
+%\fi
+%\ProvidesFile{czech.dtx}
+ [2005/03/29 v1.3k Czech support from the babel system]
+%\iffalse
+%% File `czech.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Czech language definition file.
+% Contributions were made by Milos Lokajicek (LOKAJICK@CERNVM).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{czech.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{czech.dtx}
+%
+% \changes{czech-1.0a}{1991/07/15}{Renamed babel.sty in babel.com}
+% \changes{czech-1.1}{1992/02/15}{Brought up-to-date with babel 3.2a}
+% \changes{czech-1.2}{1993/07/11}{Included some features from Kasal's
+% czech.sty}
+% \changes{czech-1.3}{1994/02/27}{Update for \LaTeXe}
+% \changes{czech-1.3d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{czech-1.3h}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Czech language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. Contributions were made by Milos Lokajicek
+% (\texttt{LOKAJICK@CERNVM}).} defines all the language definition
+% macros for the Czech language.
+%
+% For this language |\frenchspacing| is set and two macros |\q| and
+% |\w| for easy access to two accents are defined.
+%
+% The command |\q| is used with the letters (\texttt{t},
+% \texttt{d}, \texttt{l}, and \texttt{L}) and adds a \texttt{'} to
+% them to simulate a `hook' that should be there. The result looks
+% like t\kern-2pt\char'47. The command |\w| is used to put the
+% ring-accent which appears in \aa ngstr\o m over the letters
+% \texttt{u} and \texttt{U}.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{czech-1.3h}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{czech}\captionsczech
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{czech} will be an `unknown' language in which case
+% we have to make it known. So we check for the existence of
+% |\l@czech| to see whether we have to do something here.
+%
+% \changes{czech-1.0b}{1991/10/27}{Removed use of \cs{@ifundefined}}
+% \changes{czech-1.1}{1992/02/15}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{czech-1.3d}{1994/06/26}{Now use \cs{@nopatterns} to produce
+% the warning}
+% \begin{macrocode}
+\ifx\l@czech\@undefined
+ \@nopatterns{Czech}
+ \adddialect\l@czech0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Czech language.
+%
+% \begin{macro}{\captionsczech}
+% The macro |\captionsczech| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{czech-1.1}{1992/02/15}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{czech-1.3f}{1995/07/04}{Added \cs{proofname} for AMS-\LaTeX}
+% \changes{czech-1.3g}{1996/02/12}{Fixed two errors and provided
+% translation for `proof'}
+% \changes{czech-1.3j}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{czech-1.3k}{2004/02/18}{Added translation for Glossary}
+% \begin{macrocode}
+\addto\captionsczech{%
+ \def\prefacename{P\v redmluva}%
+ \def\refname{Reference}%
+ \def\abstractname{Abstrakt}%
+ \def\bibname{Literatura}%
+ \def\chaptername{Kapitola}%
+ \def\appendixname{Dodatek}%
+ \def\contentsname{Obsah}%
+ \def\listfigurename{Seznam obr\'azk\r{u}}%
+ \def\listtablename{Seznam tabulek}%
+ \def\indexname{Index}%
+ \def\figurename{Obr\'azek}%
+ \def\tablename{Tabulka}%
+ \def\partname{\v{C}\'ast}%
+ \def\enclname{P\v{r}\'{\i}loha}%
+ \def\ccname{Na v\v{e}dom\'{\i}:}%
+ \def\headtoname{Komu}%
+ \def\pagename{Strana}%
+ \def\seename{viz}%
+ \def\alsoname{viz tak\'e}%
+ \def\proofname{D\r{u}kaz}%
+ \def\glossaryname{Glos\'a\v r}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateczech}
+% The macro |\dateczech| redefines the command |\today| to produce
+% Czech dates.
+% \changes{czech-1.3i}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{czech-1.3i}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dateczech{%
+ \def\today{\number\day.~\ifcase\month\or
+ ledna\or \'unora\or b\v{r}ezna\or dubna\or kv\v{e}tna\or
+ \v{c}ervna\or \v{c}ervence\or srpna\or z\'a\v{r}\'{\i}\or
+ \v{r}\'{\i}jna\or listopadu\or prosince\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasczech}
+% \begin{macro}{\noextrasczech}
+% The macro |\extrasczech| will perform all the extra definitions
+% needed for the Czech language. The macro |\noextrasczech| is used
+% to cancel the actions of |\extrasczech|. This means saving the
+% meaning of two one-letter control sequences before defining them.
+%
+% \changes{czech-1.1a}{1992/07/07}{Removed typo, \cs{q} was restored
+% twice, once too many.}
+% \changes{czech-1.3e}{1995/03/15}{Use \LaTeX's \cs{v} and \cs{r}
+% accent commands}
+% \begin{macrocode}
+\addto\extrasczech{\babel@save\q\let\q\v}
+\addto\extrasczech{\babel@save\w\let\w\r}
+% \end{macrocode}
+% For Czech texts |\frenchspacing| should be in effect. We make
+% sure this is the case and reset it if necessary.
+% \changes{czech-1.3e}{1995/03/14}{now use \cs{bbl@frenchspacing} and
+% \cs{bbl@nonfrenchspacing}}
+% \begin{macrocode}
+\addto\extrasczech{\bbl@frenchspacing}
+\addto\noextrasczech{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\v}
+% \LaTeX's normal |\v| accent places a caron over the letter that
+% follows it (\v{o}). This is not what we want for the letters d,
+% t, l and L; for those the accent should change shape. This is
+% acheived by the following.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \DeclareTextCompositeCommand{\v}{OT1}{t}{%
+ t\kern-.23em\raise.24ex\hbox{'}}
+ \DeclareTextCompositeCommand{\v}{OT1}{d}{%
+ d\kern-.13em\raise.24ex\hbox{'}}
+ \DeclareTextCompositeCommand{\v}{OT1}{l}{\lcaron{}}
+ \DeclareTextCompositeCommand{\v}{OT1}{L}{\Lcaron{}}}
+% \end{macrocode}
+%
+% \begin{macro}{\lcaron}
+% \begin{macro}{\Lcaron}
+% Fot the letters \texttt{l} and \texttt{L} we want to disinguish
+% between normal fonts and monospaced fonts.
+% \begin{macrocode}
+\def\lcaron{%
+ \setbox0\hbox{M}\setbox\tw@\hbox{i}%
+ \ifdim\wd0>\wd\tw@\relax
+ l\kern-.13em\raise.24ex\hbox{'}\kern-.11em%
+ \else
+ l\raise.45ex\hbox to\z@{\kern-.35em '\hss}%
+ \fi}
+\def\Lcaron{%
+ \setbox0\hbox{M}\setbox\tw@\hbox{i}%
+ \ifdim\wd0>\wd\tw@\relax
+ L\raise.24ex\hbox to\z@{\kern-.28em'\hss}%
+ \else
+ L\raise.45ex\hbox to\z@{\kern-.40em '\hss}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{czech-1.3h}{1996/11/02}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{czech}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/czech.ins b/Master/texmf-dist/source/generic/babel/czech.ins
new file mode 100644
index 00000000000..06743474603
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/czech.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{czech.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{czech.ldf}{\from{czech.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/danish.dtx b/Master/texmf-dist/source/generic/babel/danish.dtx
new file mode 100644
index 00000000000..d0b6a0d7807
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/danish.dtx
@@ -0,0 +1,304 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{138}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{danish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{danish}
+%\fi
+%\ProvidesFile{danish.dtx}
+ [2005/03/30 v1.3p Danish support from the babel system]
+%\iffalse
+%% File `danish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Danish language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{danish.dtx}
+\end{document}
+%</filedriver>
+% A contribution was made by Henning Larsen (larsen@cernvm.cern.ch)
+%\fi
+% \GetFileInfo{danish.dtx}
+%
+% \changes{danish-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{danish-1.1}{1992/02/15}{Brought up-to-date with babel 3.2a}
+% \changes{danish-1.3}{1994/02/27}{Update for \LaTeXe}
+% \changes{danish-1.3f}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{danish-1.3g}{1995/06/08}{Added the active double quote
+% character as suggested by Peter Busk Laursen}
+% \changes{danish-1.3j}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Danish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Henning Larsen
+% (\texttt{larsen@cernvm.cern.ch})} defines all the
+% language definition macros for the Danish language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:danish-quote} an overview is given of its purpose.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |""| & like \verb="-=, but producing no hyphen sign (for
+% words that should break at some sign such as
+% ``entrada/salida.''\\
+% |"`| & lowered double left quotes (looks like ,,)\\
+% |"'| & normal double right quotes\\
+% |"<| & for French left double quotes (similar to $<<$).\\
+% |">| & for French right double quotes (similar to $>>$).\\
+% \end{tabular}
+% \caption{The extra definitions made by \file{danish.ldf}}
+% \label{tab:danish-quote}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{danish-1.3j}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{danish}\captionsdanish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{danish} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@danish| to see whether we have to do something here.
+%
+% \changes{danish-1.0b}{1991/10/27}{Removed use of \cs{@ifundefined}}
+% \changes{danish-1.1}{1992/02/15}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{danish-1.3f}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@danish\@undefined
+ \@nopatterns{Danish}
+ \adddialect\l@danish0\fi
+% \end{macrocode}
+%
+% \begin{macro}{\englishhyphenmins}
+% \changes{danish-1.3p}{2003/11/17}{Added default for setting of
+% hyphenmin parameters}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\@ne\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Danish language.
+%
+% \begin{macro}{\captionsdanish}
+% The macro |\captionsdanish| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{danish-1.1}{1992/02/15}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{danish-1.2}{1993/07/11}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{danish-1.2b}{1993/10/23}{Added a few translations}
+% \changes{danish-1.3c}{1994/06/04}{Included some revisions from Peter
+% Busk Larsen}
+% \changes{danish-1.3h}{1995/07/02}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{danish-1.3i}{1995/07/13}{Added translation of `Proof'}
+% \changes{danish-1.3n}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{danish-1.3o}{2003/04/10}{Added translation of `Glossary'}
+% \begin{macrocode}
+\addto\captionsdanish{%
+ \def\prefacename{Forord}%
+ \def\refname{Litteratur}%
+ \def\abstractname{Resum\'e}%
+ \def\bibname{Litteratur}%
+ \def\chaptername{Kapitel}%
+ \def\appendixname{Bilag}%
+ \def\contentsname{Indhold}%
+ \def\listfigurename{Figurer}%
+ \def\listtablename{Tabeller}%
+ \def\indexname{Indeks}%
+ \def\figurename{Figur}%
+ \def\tablename{Tabel}%
+ \def\partname{Del}%
+ \def\enclname{Vedlagt}%
+ \def\ccname{Kopi til}% or Kopi sendt til
+ \def\headtoname{Til}% in letter
+ \def\pagename{Side}%
+ \def\seename{Se}%
+ \def\alsoname{Se ogs{\aa}}%
+ \def\proofname{Bevis}%
+ \def\glossaryname{Gloseliste}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datedanish}
+% The macro |\datedanish| redefines the command |\today| to produce
+% Danish dates.
+% \changes{danish-1.3a}{1994/03/23}{Added `.' to definition of
+% \cs{today}}
+% \changes{danish-1.3k}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{danish-1.3k}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\datedanish{%
+ \def\today{\number\day.~\ifcase\month\or
+ januar\or februar\or marts\or april\or maj\or juni\or
+ juli\or august\or september\or oktober\or november\or december\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasdanish}
+% \changes{danish-1.3h}{1995/07/02}{Added \cs{bbl@frenchspacing}}
+% \begin{macro}{\noextrasdanish}
+% \changes{danish-1.3h}{1995/07/02}{Added \cs{bbl@nonfrenchspacing}}
+% The macro |\extrasdanish| will perform all the extra definitions
+% needed for the Danish language. The macro |\noextrasdanish| is
+% used to cancel the actions of |\extrasdanish|.
+%
+% Danish typesetting requires |\frenchspacing| to be in effect.
+% \begin{macrocode}
+\addto\extrasdanish{\bbl@frenchspacing}
+\addto\noextrasdanish{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+%
+% For Danish the \texttt{"} character is made active. This is
+% done once, later on its definition may vary. Other languages in
+% the same document may also use the \texttt{"} character for
+% shorthands; we specify that the danish group of shorthands
+% should be used.
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasdanish{\languageshorthands{danish}}
+\addto\extrasdanish{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{danish-1.3m}{1999/12/16}{Deactivate shorthands ouside of
+% Danish}
+% \begin{macrocode}
+\addto\noextrasdanish{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+% First we define access to the low opening double quote and
+% guillemets for quotations,
+% \changes{danish-1.3j}{1996/08/15}{Changed definition of \texttt{"'}
+% to print \texttt{``} instead of \texttt{''}}
+% \changes{danish-1.3k}{1997/04/03}{Removed empty groups after double
+% quote and guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{danish}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{danish}{"'}{%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}
+\declare@shorthand{danish}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{danish}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define to be able to specify hyphenation
+% breakpoints that behave a little different from |\-|.
+% \changes{danish-1.3j}{1996/08/15}{Added definition of
+% \texttt{"\char126} and \texttt{"\char61}}
+% \begin{macrocode}
+\declare@shorthand{danish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{danish}{""}{\hskip\z@skip}
+\declare@shorthand{danish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{danish}{"=}{\nobreak-\hskip\z@skip}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{danish}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{danish-1.3j}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{danish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/danish.ins b/Master/texmf-dist/source/generic/babel/danish.ins
new file mode 100644
index 00000000000..203cff95ab9
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/danish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{danish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{danish.ldf}{\from{danish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/dutch.dtx b/Master/texmf-dist/source/generic/babel/dutch.dtx
new file mode 100644
index 00000000000..24e2031922d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/dutch.dtx
@@ -0,0 +1,560 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{300}
+%\iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{dutch.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{dutch}
+%\fi
+%\ProvidesFile{dutch.dtx}
+ [2005/03/30 v3.8i Dutch support from the babel system]
+%\iffalse
+%% File `dutch.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Dutch Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Dutch language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\makeatletter
+\gdef\dlqq{{\setbox\tw@=\hbox{,}\setbox\z@=\hbox{''}%
+ \dimen\z@=\ht\z@ \advance\dimen\z@-\ht\tw@
+ \setbox\z@=\hbox{\lower\dimen\z@\box\z@}\ht\z@=\ht\tw@
+ \dp\z@=\dp\tw@ \box\z@\kern-.04em}}
+\makeatother
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{dutch.dtx}
+\end{document}
+%</filedriver>
+% \fi
+% \GetFileInfo{dutch.dtx}
+%
+% \changes{dutch-2.0a}{1990/04/02}{Added checking of format}
+% \changes{dutch-2.0b}{1990/04/02}{Added extrasdutch}
+% \changes{dutch-2.0c}{1990/04/18}{Added grqq macros}
+% \changes{dutch-2.1}{1990/04/24}{reflect change to version 2.1 in
+% babel and changes in german v2.3}
+% \changes{dutch-2.1a}{1990/05/01}{Incorporated Nico's comments}
+% \changes{dutch-2.1b}{1990/07/04}{Incorporated more comments by Nico}
+% \changes{dutch-2.1c}{1990/07/16}{Fixed some typos}
+% \changes{dutch-2.2}{1990/07/16}{Fixed problem with the use of
+% \texttt{"} in moving arguments while \texttt{"} is active}
+% \changes{dutch-2.3}{1990/07/30}{When using PostScript fonts with the
+% Adobe font-encoding, the dieresis-accent is located elsewhere,
+% modified code}
+% \changes{dutch-2.3a}{1990/08/27}{Modified the documentation somewhat}
+% \changes{dutch-3.0}{1991/04/23}{Modified for babel 3.0}
+% \changes{dutch-3.0a}{1991/05/25}{Removed some problems in change log}
+% \changes{dutch-3.1}{1991/05/29}{Removed bug found by van der Meer}
+% \changes{dutch-3.2a}{1991/07/15}{Renamed babel.sty in babel.com}
+% \changes{dutch-3.3}{1991/10/31}{Rewritten parts of the code to use
+% the new features of babel version 3.1}
+% \changes{dutch-3.6}{1994/02/02}{Update or LaTeX2e}
+% \changes{dutch-3.6c}{1994/06/26}{Removed the use of \cs{filedate},
+% moved identification after the loading of babel.def}
+% \changes{dutch-3.7a}{1995/02/03}{Moved identification code to the
+% top of the file}
+% \changes{dutch-3.7a}{1995/02/04}{Rewrote the code with respect to
+% the active double quote character}
+% \changes{dutch-3.7f}{1996/07/11}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{dutch-3.8a}{1996/10/04}{Merged in the definitions for
+% `afrikaans'}
+%
+% \section{The Dutch language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion, and was last revised on
+% \filedate.} defines all the language-specific macros for the Dutch
+% language and the `Afrikaans' version\footnote{contributed by
+% Stoffel Lombard (\texttt{lombc@b31pc87.up.ac.za})} of it.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:dutch-quote} an overview is given of its purpose.
+% One of the reasons for this is that in the Dutch language a word
+% with a dieresis can be hyphenated just before the letter with the
+% umlaut, but the dieresis has to disappear if the word is broken
+% between the previous letter and the accented letter.
+%
+% In~\cite{treebus} the quoting conventions for the Dutch language
+% are discussed. The preferred convention is the single-quote
+% Anglo-American convention, i.e. `This is a quote'. An
+% alternative is the slightly old-fashioned Dutch method with
+% initial double quotes lowered to the baseline, \dlqq This is a
+% quote'', which should be typed as \texttt{"`This is a quote"'}.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% |"a| & |\"a| which hyphenates as |-a|;
+% also implemented for the other letters. \\
+% |"y| & puts a negative kern between \texttt{i} and \texttt{j}\\
+% |"Y| & puts a negative kern between \texttt{I} and \texttt{J}\\
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |"~| & to produce a hyphencharcter without the following
+% |\discretionary{}{}{}|.\\
+% |""| & to produce an invisible `breakpoint'.\\
+% |"`| & lowered double left quotes (see example below).\\
+% |"'| & normal double right quotes. \\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word.
+% \end{tabular}
+% \caption{The extra definitions made by \file{dutch.ldf}}
+% \label{tab:dutch-quote}
+% \end{table}
+%
+% \StopEventually{}
+%
+% \changes{dutch-3.2c}{1991/10/22}{Removed code to load
+% \file{latexhax.com}}
+% \changes{dutch-3.2a}{1991/07/15}{Added reset of catcode of @ before
+% \cs{endinput}.}
+% \changes{dutch-3.2c}{1991/10/22}{removed use of \cs{@ifundefined}}
+% \changes{dutch-3.3a}{1991/11/11}{Moved code to the beginning of the
+% file and added \cs{selectlanguage} call}
+% \begin{macrocode}
+% \changes{dutch-3.8a}{1996/10/04}{made check dependant on
+% \cs{CurrentOption}}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{dutch-3.8a}{1996/10/30}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{dutch} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@dutch| or |l@afrikaans| to see whether we have to do
+% something here.
+%
+% First we try to establish with which option we are being
+% processed.
+%
+% \changes{dutch-3.0}{1991/04/23}{Now use \cs{adddialect} if language
+% undefined}
+% \changes{dutch-3.2c}{1991/10/22}{removed use of \cs{@ifundefined}}
+% \changes{dutch-3.3b}{1992/01/25}{Added warning, if no dutch patterns
+% loaded}
+% \changes{dutch-3.6c}{1994/06/26}{Now use \cs{@nopatterns} to produce
+% the warning}
+% \changes{dutch-3.8a}{1996/10/04}{this needs a more complicated check
+% as `afrikaans' may or may not have its own hyphenation patterns}
+% \begin{macrocode}
+\def\bbl@tempa{dutch}
+\ifx\CurrentOption\bbl@tempa
+% \end{macrocode}
+% If it is \Lopt{dutch} then we first check if the Dutch
+% hyphenation patterns wer loaded,
+% \begin{macrocode}
+ \ifx\l@dutch\undefined
+% \end{macrocode}
+% if no we issue a warning and make dutch a `dialect' of either the
+% hyphenation patterns that were loaded in slot 0 or of `afrikaans'
+% when it is available.
+% \begin{macrocode}
+ \@nopatterns{Dutch}
+ \ifx\l@afrikaans\undefined
+ \adddialect\l@dutch0
+ \else
+ \adddialect\l@dutch\l@afrikaans
+ \fi
+ \fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Dutch language.
+%
+% \begin{macro}{\captionsdutch}
+% The macro |\captionsdutch| defines all strings used
+% in the four standard document classes provided with \LaTeX.
+% \changes{dutch-3.1a}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{dutch-3.1a}{1991/06/06}{\cs{pagename} should be
+% \cs{headpagename}}
+% \changes{dutch-3.3a}{1991/11/11}{added \cs{seename} and
+% \cs{alsoname}}
+% \changes{dutch-3.3b}{1992/01/25}{added \cs{prefacename}}
+% \changes{dutch-3.5}{1993/07/11}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{dutch-3.7c}{1995/06/08}{We need the \texttt{"} to be active
+% while defining \cs{captionsdutch}}
+% \changes{dutch-3.7d}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{dutch-3.8b}{1997/01/06}{Use \texttt{Bew"ys} instead of
+% \texttt{Bewijs}}
+% \changes{dutch-3.8h}{2000/09/19}{Added \cs{glossaryname}}
+% \begin{macrocode}
+ \begingroup
+ \catcode`\"\active
+ \def\x{\endgroup
+ \def\captionsdutch{%
+ \def\prefacename{Voorwoord}%
+ \def\refname{Referenties}%
+ \def\abstractname{Samenvatting}%
+ \def\bibname{Bibliografie}%
+ \def\chaptername{Hoofdstuk}%
+ \def\appendixname{B"ylage}%
+ \def\contentsname{Inhoudsopgave}%
+ \def\listfigurename{L"yst van figuren}%
+ \def\listtablename{L"yst van tabellen}%
+ \def\indexname{Index}%
+ \def\figurename{Figuur}%
+ \def\tablename{Tabel}%
+ \def\partname{Deel}%
+ \def\enclname{B"ylage(n)}%
+ \def\ccname{cc}%
+ \def\headtoname{Aan}%
+ \def\pagename{Pagina}%
+ \def\seename{zie}%
+ \def\alsoname{zie ook}%
+ \def\proofname{Bew"ys}%
+ \def\glossaryname{Verklarende Woordenl"yst}%
+ }
+ }\x
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datedutch}
+% The macro |\datedutch| redefines the command |\today| to produce
+% Dutch dates.
+% \changes{dutch-3.1a}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{dutch-3.8e}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{dutch-3.8e}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+ \def\datedutch{%
+ \def\today{\number\day~\ifcase\month\or
+ januari\or februari\or maart\or april\or mei\or juni\or
+ juli\or augustus\or september\or oktober\or november\or
+ december\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% When the option with which this file is being process was not
+% \Lopt{dutch} we assume it was \Lopt{afrikaans}. We perform a
+% similar check on the availability of the hyphenation paterns.
+% \begin{macrocode}
+\else
+ \ifx\l@afrikaans\undefined
+ \@nopatterns{Afrikaans}
+ \ifx\l@dutch\undefined
+ \adddialect\l@afrikaans0
+ \else
+ \adddialect\l@afrikaans\l@dutch
+ \fi
+ \fi
+% \end{macrocode}
+%
+% \begin{macro}{\captionsafrikaans}
+% Now is the time to define the words for `Afrikaans'.
+% \begin{macrocode}
+ \def\captionsafrikaans{%
+ \def\prefacename{Voorwoord}%
+ \def\refname{Verwysings}%
+ \def\abstractname{Samevatting}%
+ \def\bibname{Bibliografie}%
+ \def\chaptername{Hoofstuk}%
+ \def\appendixname{Bylae}%
+ \def\contentsname{Inhoudsopgawe}%
+ \def\listfigurename{Lys van figure}%
+ \def\listtablename{Lys van tabelle}%
+ \def\indexname{Inhoud}%
+ \def\figurename{Figuur}%
+ \def\tablename{Tabel}%
+ \def\partname{Deel}%
+ \def\enclname{Bylae(n)}%
+ \def\ccname{a.a.}%
+ \def\headtoname{Aan}%
+ \def\pagename{Bladsy}%
+ \def\seename{sien}%
+ \def\alsoname{sien ook}%
+ \def\proofname{Bewys}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateafrikaans}
+% Here is the `Afrikaans' version of the date macro.
+% \changes{dutch-3.8e}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{dutch-3.8e}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+ \def\dateafrikaans{%
+ \def\today{\number\day~\ifcase\month\or
+ Januarie\or Februarie\or Maart\or April\or Mei\or Junie\or
+ Julie\or Augustus\or September\or Oktober\or November\or
+ Desember\fi
+ \space \number\year}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasdutch}
+% \begin{macro}{\extrasafrikaans}
+% \changes{dutch-3.0b}{1991/05/29}{added some comment chars to prevent
+% white space}
+% \changes{dutch-3.1a}{1991/06/6}{Removed \cs{global} definitions}
+% \changes{dutch-3.2}{1991/07/02}{Save all redefined macros}
+% \changes{dutch-3.3}{1991/10/31}{Macro complete rewritten}
+% \changes{dutch-3.3b}{1992/01/25}{modified handling of
+% \cs{dospecials} and \cs{@sanitize}}
+%
+% \begin{macro}{\noextrasdutch}
+% \begin{macro}{\noextrasafrikaans}
+% \changes{dutch-2.3}{1990/07/30}{Added \cs{dieresis}}
+% \changes{dutch-3.0b}{1991/05/29}{added some comment chars to prevent
+% white space}
+% \changes{dutch-3.1a}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{dutch-3.2}{1991/07/02}{Try to restore everything to its
+% former state}
+% \changes{dutch-3.3}{1991/10/31}{Macro complete rewritten}
+% \changes{dutch-3.3b}{1992/01/25}{modified handling of \cs{dospecials}
+% and \cs{@sanitize}}
+% \changes{dutch-3.8a}{1996/10/04}{Made all definitions dependant on
+% \cs{CurrentOption}}
+%
+% The macros |\extrasdutch| and |\captionsafrikaans| will perform
+% all the extra definitions needed for the Dutch language. The
+% macros |\noextrasdutch| and |noextrasafrikaans| is used
+% to cancel the actions of |\extrasdutch| and |\captionsafrikaans|.
+%
+% For Dutch the \texttt{"} character is made active. This is done
+% once, later on its definition may vary. Other languages in the
+% same document may also use the \texttt{"} character for
+% shorthands; we specify that the dutch group of shorthands should
+% be used.
+% \begin{macrocode}
+\initiate@active@char{"}
+% \end{macrocode}
+% Both version of the language use the same set of shorthand
+% definitions althoug the `ij' is not used in Afrikaans.
+% \begin{macrocode}
+\@namedef{extras\CurrentOption}{\languageshorthands{dutch}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+%
+% The `umlaut' character should be positioned lower on \emph{all}
+% vowels in Dutch texts.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \umlautlow\umlautelow}
+\@namedef{noextras\CurrentOption}{%
+ \umlauthigh}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dutchhyphenmins}
+% \begin{macro}{\afrikaanshyphenmins}
+% The dutch hyphenation patterns can be used with |\lefthyphenmin|
+% set to~2 and |\righthyphenmin| set to~3.
+% \changes{dutch-3.7a}{1995/05/13}{use \cs{dutchhyphenmins} to store
+% the correct values}
+% \changes{dutch-3.8h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\thr@@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{dutch-3.3a}{1991/11/11}{Added \cs{save@sf@q} macro from
+% germanb and rewrote all quote macros to use it}
+% \changes{dutch-3.4b}{1991/02/16}{moved definition of
+% \cs{allowhyphens}, \cs{set@low@box} and \cs{save@sf@q} to
+% \file{babel.com}}
+% \changes{dutch-3.7a}{1995/02/04}{Removed \cs{dlqq}, \cs{@dlqq},
+% \cs{drqq}, \cs{@drqq} and \cs{dieresis}}
+% \changes{dutch-3.7a}{1995/02/15}{moved the definition of the double
+% quote character at the baseline to \file{glyhps.def}}
+%
+% \begin{macro}{\@trema}
+% In the Dutch language vowels with a trema are treated
+% specially. If a hyphenation occurs before a vowel-plus-trema, the
+% trema should disappear. To be able to do this we could first
+% define the hyphenation break behaviour for the five vowels, both
+% lowercase and uppercase, in terms of |\discretionary|. But this
+% results in a large |\if|-construct in the definition of the
+% active |"|. Because we think a user should not use |"| when he
+% really means something like |''| we chose not to distinguish
+% between vowels and consonants. Therefore we have one macro
+% |\@trema| which specifies the hyphenation break behaviour for all
+% letters.
+%
+% \changes{dutch-2.3}{1990/07/30}{\cs{dieresis} instead of
+% \cs{accent127}}
+% \changes{dutch-3.3a}{1991/11/11}{renamed \cs{@umlaut} to
+% \cs{@trema}}
+% \begin{macrocode}
+\def\@trema#1{\allowhyphens\discretionary{-}{#1}{\"{#1}}\allowhyphens}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{dutch-3.7a}{1995/02/15}{Moved the definition of \cs{ij} and
+% \cs{IJ} to \file{glyphs.def}}
+% \changes{dutch-3.7a}{1995/02/03}{The support macros for the active
+% double quote have been moved to \file{babel.def}}
+%
+% Now we can define the doublequote macros: the tremas,
+%
+% \changes{dutch-2.3}{1990/07/30}{\cs{dieresis} instead of
+% \cs{accent127}}
+% \changes{dutch-3.2}{1991/07/02}{added case for \texttt{"y} and
+% \texttt{"Y}}
+% \changes{dutch-3.2b}{1991/07/16}{removed typo (allowhpyhens)}
+% \changes{dutch-3.7a}{1995/02/03}{Now use \cs{Declaredq{dutch}} to
+% define the functions of the active double quote}
+% \changes{dutch-3.7a}{1995/02/03}{Use \cs{ddot} instead of
+% \cs{@MATHUMLAUT}}
+% \changes{dutch-3.7a}{1995/03/05}{Use more general mechanism of
+% \cs{declare@shorthand}}
+% \begin{macrocode}
+\declare@shorthand{dutch}{"a}{\textormath{\@trema a}{\ddot a}}
+\declare@shorthand{dutch}{"e}{\textormath{\@trema e}{\ddot e}}
+\declare@shorthand{dutch}{"i}{\textormath
+ {\allowhyphens\discretionary{-}{i}{\"{\i}}\allowhyphens}%
+ {\ddot \imath}}
+\declare@shorthand{dutch}{"o}{\textormath{\@trema o}{\ddot o}}
+\declare@shorthand{dutch}{"u}{\textormath{\@trema u}{\ddot u}}
+% \end{macrocode}
+% dutch quotes,
+% \changes{dutch-3.8e}{1997/04/03}{Removed empty groups after double
+% quote characters}
+% \begin{macrocode}
+\declare@shorthand{dutch}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{dutch}{"'}{%
+ \textormath{\textquotedblright}{\mbox{\textquotedblright}}}
+% \end{macrocode}
+% and some additional commands:
+% \changes{dutch-3.7b}{1995/06/04}{Added \texttt{""} shorthand}
+% \changes{dutch-3.8c}{1997/01/14}{Added the \texttt{"\~{}} shorthand}
+% \changes{dutch-3.8e}{1997/04/01}{Forgot to replace `german' by
+% `dutch' when copying definition for \texttt{"\~{}}}
+% \begin{macrocode}
+\declare@shorthand{dutch}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{dutch}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{dutch}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+\declare@shorthand{dutch}{""}{\hskip\z@skip}
+\declare@shorthand{dutch}{"y}{\textormath{\ij{}}{\ddot y}}
+\declare@shorthand{dutch}{"Y}{\textormath{\IJ{}}{\ddot Y}}
+% \end{macrocode}
+% To enable hyphenation in two words, written together but
+% separated by a slash, as in `uitdrukking/opmerking' we define the
+% command |"/|.
+% \changes{dutch-3.8e}{1997/10/03}{Added a shorthand with the slash
+% character}
+% \changes{dutch-3.8i}{2003/09/15}{\texttt{"/} should use
+% \cs{bbl@allowhyphens}}
+% \begin{macrocode}
+\declare@shorthand{dutch}{"/}{\textormath
+ {\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}
+% \end{macrocode}
+%
+% \begin{macro}{\-}
+%
+% All that is left now is the redefinition of |\-|. The new version
+% of |\-| should indicate an extra hyphenation position, while
+% allowing other hyphenation positions to be generated
+% automatically. The standard behaviour of \TeX\ in this respect is
+% very unfortunate for languages such as Dutch and German, where
+% long compound words are quite normal and all one needs is a means
+% to indicate an extra hyphenation position on top of the ones that
+% \TeX\ can generate from the hyphenation patterns.
+% \changes{dutch-3.8i}{2003/09/15}{\cs{-} should use
+% \cs{bbl@allowhyphens}}
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\-}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \def\-{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{dutch-3.8a}{1996/10/30}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/dutch.ins b/Master/texmf-dist/source/generic/babel/dutch.ins
new file mode 100644
index 00000000000..1437c660a7e
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/dutch.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{dutch.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{dutch.ldf}{\from{dutch.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/english.dtx b/Master/texmf-dist/source/generic/babel/english.dtx
new file mode 100644
index 00000000000..9054cc2957b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/english.dtx
@@ -0,0 +1,451 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{360}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{english.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{english}
+%\fi
+%\ProvidesFile{english.dtx}
+ [2005/03/30 v3.3o English support from the babel system]
+%\iffalse
+%% File 'english.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the English language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \mathit lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{english.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{english.dtx}
+%
+% \changes{english-2.0a}{1990/04/02}{Added checking of format}
+% \changes{english-2.1}{1990/04/24}{Reflect changes in babel 2.1}
+% \changes{english-2.1a}{1990/05/14}{Incorporated Nico's comments}
+% \changes{english-2.1b}{1990/05/14}{merged \file{USenglish.sty} into
+% this file}
+% \changes{english-2.1c}{1990/05/22}{fixed typo in definition for
+% american language found by Werenfried Spit (nspit@fys.ruu.nl)}
+% \changes{english-2.1d}{1990/07/16}{Fixed some typos}
+% \changes{english-3.0}{1991/04/23}{Modified for babel 3.0}
+% \changes{english-3.0a}{1991/05/29}{Removed bug found by van der Meer}
+% \changes{english-3.0c}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{english-3.1}{1991/11/05}{Rewrote parts of the code to use
+% the new features of babel version 3.1}
+% \changes{english-3.3}{1994/02/08}{Update or \LaTeXe}
+% \changes{english-3.3c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved the identification after the loading of
+% \file{babel.def}}
+% \changes{english-3.3g}{1996/07/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{english-3.3h}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The English language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% English language as well as for the American and Australian
+% version of this language. For the Australian version the British
+% hyphenation patterns will be used, if available, for the Canadian
+% variant the American patterns are selected.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{english-3.3h}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{date\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{english} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@english| to see whether we have to do something here.
+%
+% \changes{english-3.0}{1991/04/23}{Now use \cs{adddialect} if
+% language undefined}
+% \changes{english-3.0d}{1991/10/22}{removed use of \cs{@ifundefined}}
+% \changes{english-3.3c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \changes{english-3.3g}{1996/07/10}{Allow british as the name of the
+% UK patterns}
+% \changes{english-3.3j}{2000/01/21}{Also allow american english
+% hyphenation patterns to be used for `english'}
+% We allow for the british english patterns to be loaded as either
+% `british', or `UKenglish'. When neither of those is
+% known we try to define |\l@english| as an alias for |\l@american|
+% or |\l@USenglish|.
+% \changes{english-3.3k}{2001/02/07}{Added support for canadian}
+% \changes{english-3.3n}{2004/06/12}{Added support for australian and
+% newzealand}
+% \begin{macrocode}
+\ifx\l@english\@undefined
+ \ifx\l@UKenglish\@undefined
+ \ifx\l@british\@undefined
+ \ifx\l@american\@undefined
+ \ifx\l@USenglish\@undefined
+ \ifx\l@canadian\@undefined
+ \ifx\l@australian\@undefined
+ \ifx\l@newzealand\@undefined
+ \@nopatterns{English}
+ \adddialect\l@english0
+ \else
+ \let\l@english\l@newzealand
+ \fi
+ \else
+ \let\l@english\l@australian
+ \fi
+ \else
+ \let\l@english\l@canadian
+ \fi
+ \else
+ \let\l@english\l@USenglish
+ \fi
+ \else
+ \let\l@english\l@american
+ \fi
+ \else
+ \let\l@english\l@british
+ \fi
+ \else
+ \let\l@english\l@UKenglish
+ \fi
+\fi
+% \end{macrocode}
+% Because we allow `british' to be used as the babel option we need
+% to make sure that it will be recognised by |\selectlanguage|. In
+% the code above we have made sure that |\l@english| was defined.
+% Now we want to make sure that |\l@british| and |\l@UKenglish| are
+% defined as well. When either of them is we make them equal to
+% each other, when neither is we fall back to the default,
+% |\l@english|.
+% \changes{english-3.3o}{2004/06/14}{Make sure that british patterns
+% are used if they were loaded}
+% \begin{macrocode}
+\ifx\l@british\@undefined
+ \ifx\l@UKenglish\@undefined
+ \adddialect\l@british\l@english
+ \adddialect\l@UKenglish\l@english
+ \else
+ \let\l@british\l@UKenglish
+ \fi
+\else
+ \let\l@UKenglish\l@british
+\fi
+% \end{macrocode}
+% `American' is a version of `English' which can have its own
+% hyphenation patterns. The default english patterns are in fact
+% for american english. We allow for the patterns to be loaded as
+% `english' `american' or `USenglish'.
+% \changes{english-3.0}{1990/04/23}{Now use \cs{adddialect} for
+% american}
+% \changes{english-3.0b}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{english-3.3d}{1995/02/01}{Only define american as a
+% dialect when no separate patterns have been loaded}
+% \changes{english-3.3g}{1996/07/10}{Allow USenglish as the name of
+% the american patterns}
+% \begin{macrocode}
+\ifx\l@american\@undefined
+ \ifx\l@USenglish\@undefined
+% \end{macrocode}
+% When the patterns are not know as `american' or `USenglish' we
+% add a ``dialect''.
+% \begin{macrocode}
+ \adddialect\l@american\l@english
+ \else
+ \let\l@american\l@USenglish
+ \fi
+\else
+% \end{macrocode}
+% Make sure that USenglish is known, even if the patterns were
+% loaded as `american'.
+% \changes{english-3.3j}{2000/01/21}{Ensure that \cs{l@USenglish} is
+% alway defined}
+% \changes{english-3.3l}{2001/04/15}{Added missing backslash}
+% \begin{macrocode}
+ \ifx\l@USenglish\@undefined
+ \let\l@USenglish\l@american
+ \fi
+\fi
+% \end{macrocode}
+%
+
+% \changes{english-3.3k}{2001/02/07}{Added support for canadian}
+% `Canadian' english spelling is a hybrid of British and American
+% spelling. Although so far no special `translations' have been
+% reported we allow this file to be loaded by the option
+% \Lopt{candian} as well.
+% \begin{macrocode}
+\ifx\l@canadian\@undefined
+ \adddialect\l@canadian\l@american
+\fi
+% \end{macrocode}
+%
+% \changes{english-3.3n}{2004/06/12}{Added support for australian and
+% newzealand}
+% `Australian' and `New Zealand' english spelling seem to be the
+% same as British spelling. Although so far no special
+% `translations' have been reported we allow this file to be loaded
+% by the options \Lopt{australian} and \Lopt{newzealand} as well.
+% \begin{macrocode}
+\ifx\l@australian\@undefined
+ \adddialect\l@australian\l@british
+\fi
+\ifx\l@newzealand\@undefined
+ \adddialect\l@newzealand\l@british
+\fi
+% \end{macrocode}
+%
+
+% \begin{macro}{\englishhyphenmins}
+% \changes{english-3.3m}{2003/11/17}{Added default for setting of
+% hyphenmin parameters}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\thr@@}
+% \end{macrocode}
+% \end{macro}
+%
+% The next step consists of defining commands to switch to (and
+% from) the English language.
+% \begin{macro}{\captionsenglish}
+% The macro |\captionsenglish| defines all strings used
+% in the four standard document classes provided with \LaTeX.
+% \changes{english-3.0b}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{english-3.0b}{1991/06/06}{\cs{pagename} should be
+% \cs{headpagename}}
+% \changes{english-3.1a}{1991/11/11}{added \cs{seename} and
+% \cs{alsoname}}
+% \changes{english-3.1b}{1992/01/26}{added \cs{prefacename}}
+% \changes{english-3.2}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{english-3.3e}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{english-3.3g}{1996/07/10}{Construct control sequence on the
+% fly}
+% \changes{english-3.3j}{2000/09/19}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{Preface}%
+ \def\refname{References}%
+ \def\abstractname{Abstract}%
+ \def\bibname{Bibliography}%
+ \def\chaptername{Chapter}%
+ \def\appendixname{Appendix}%
+ \def\contentsname{Contents}%
+ \def\listfigurename{List of Figures}%
+ \def\listtablename{List of Tables}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Table}%
+ \def\partname{Part}%
+ \def\enclname{encl}%
+ \def\ccname{cc}%
+ \def\headtoname{To}%
+ \def\pagename{Page}%
+ \def\seename{see}%
+ \def\alsoname{see also}%
+ \def\proofname{Proof}%
+ \def\glossaryname{Glossary}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateenglish}
+% In order to define |\today| correctly we need to know whether it
+% should be `english', `australian', or `american'. We can find
+% this out by checking the value of |\CurrentOption|.
+% \changes{english-3.3j}{2000/01/21}{Make sure that the value of
+% \cs{today} is correct for both options `american' and
+% `USenglish'}
+% \changes{english-3.3n}{2004/06/12}{Added support for `Australian'
+% and `Newzealand'}
+% \changes{english-3.3o}{2004/06/14}{Explicitly choose the UK form of
+% date}
+% \begin{macrocode}
+\def\bbl@tempa{british}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{UK}\fi
+\def\bbl@tempa{UKenglish}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{UK}\fi
+\def\bbl@tempa{american}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{US}\fi
+\def\bbl@tempa{USenglish}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{US}\fi
+\def\bbl@tempa{canadian}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{US}\fi
+\def\bbl@tempa{australian}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{AU}\fi
+\def\bbl@tempa{newzealand}
+\ifx\CurrentOption\bbl@tempa\def\bbl@tempb{AU}\fi
+% \end{macrocode}
+%
+% The macro |\dateenglish| redefines the command |\today| to
+% produce English dates.
+% \changes{english-3.0b}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{english-3.3g}{1996/07/10}{Construct control sequence on the
+% fly}
+% \changes{english-3.3i}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{english-3.3i}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\bbl@tempa{UK}
+\ifx\bbl@tempa\bbl@tempb
+ \@namedef{date\CurrentOption}{%
+ \def\today{\ifcase\day\or
+ 1st\or 2nd\or 3rd\or 4th\or 5th\or
+ 6th\or 7th\or 8th\or 9th\or 10th\or
+ 11th\or 12th\or 13th\or 14th\or 15th\or
+ 16th\or 17th\or 18th\or 19th\or 20th\or
+ 21st\or 22nd\or 23rd\or 24th\or 25th\or
+ 26th\or 27th\or 28th\or 29th\or 30th\or
+ 31st\fi~\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or
+ December\fi\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateaustralian}
+% Now, test for `australian' or `american'.
+% \changes{english-3.3n}{2004/06/12}{Add australian date}
+% \begin{macrocode}
+\else
+% \end{macrocode}
+%
+% The macro |\dateaustralian| redefines the command |\today| to
+% produce Australian resp.\ New Zealand dates.
+% \begin{macrocode}
+ \def\bbl@tempa{AU}
+ \ifx\bbl@tempa\bbl@tempb
+ \@namedef{date\CurrentOption}{%
+ \def\today{\number\day~\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or
+ December\fi\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateamerican}
+% The macro |\dateamerican| redefines the command |\today| to
+% produce American dates.
+% \changes{english-3.0b}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{english-3.3i}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{english-3.3i}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+ \else
+ \@namedef{date\CurrentOption}{%
+ \def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or
+ December\fi \space\number\day, \number\year}}
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasenglish}
+% \begin{macro}{\noextrasenglish}
+% The macro |\extrasenglish| will perform all the extra definitions
+% needed for the English language. The macro |\noextrasenglish| is
+% used to cancel the actions of |\extrasenglish|. For the moment
+% these macros are empty but they are defined for compatibility
+% with the other language definition files.
+%
+% \changes{english-3.3g}{1996/07/10}{Construct control sequences on
+% the fly}
+% \begin{macrocode}
+\@namedef{extras\CurrentOption}{}
+\@namedef{noextras\CurrentOption}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{english-3.3h}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/english.ins b/Master/texmf-dist/source/generic/babel/english.ins
new file mode 100644
index 00000000000..67c897423da
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/english.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{english.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{english.ldf}{\from{english.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/esperanto.dtx b/Master/texmf-dist/source/generic/babel/esperanto.dtx
new file mode 100644
index 00000000000..6a98c77ceb3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/esperanto.dtx
@@ -0,0 +1,341 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{259}
+%\iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{esperanto.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{esperanto}
+%\fi
+%\ProvidesFile{esperant.dtx}
+ [2005/03/30 v1.4r Esperanto support from the babel system]
+%\iffalse
+%% File 'esperanto.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Esperanto language definition file. A contribution
+% was made by Ruiz-Altaba Marti (ruizaltb@cernvm.cern.ch) Code from
+% esperant.sty version 1.1 by Joerg Knappen
+% (\texttt{knappen@vkpmzd.kph.uni-mainz.de}) was included in
+% version 1.2.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{esperanto.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{esperanto.dtx}
+%
+% \changes{esperanto-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{esperanto-1.1}{1992/02/15}{Brought up-to-date with
+% babel~3.2a}
+% \changes{esperanto-1.2}{1992/02/18}{Included code from
+% \texttt{esperant.sty}}
+% \changes{esperanto-1.4a}{1994/02/04}{Updated for \LaTeXe}
+% \changes{esperanto-1.4d}{1994/06/25}{Removed the use of
+% \cs{filedate}, moved Identification after loading of
+% \file{babel.def}}
+% \changes{esperanto-1.4e}{1995/02/09}{Moved identification code to
+% the top of the file}
+% \changes{esperanto-1.4f}{1995/06/14}{Corrected typos (PR1652)}
+% \changes{esperanto-1.4i}{1996/07/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{esperanto-1.4i}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The Esperanto language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Ruiz-Altaba Marti
+% (\texttt{ruizaltb@cernvm.cern.ch}). Code from the file
+% \texttt{esperant.sty} by J\"org Knappen
+% (\texttt{knappen@vkpmzd.kph.uni-mainz.de}) was included.} defines
+% all the language-specific macros for the Esperanto language.
+%
+% For this language the character |^| is made active.
+% In table~\ref{tab:esp-act} an overview is given of its purpose.
+% \changes{esperanto-1.4j}{1997/01/06}{fixed typo in table caption
+% (funtion instead of function)}
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% |^c| & gives \^c with hyphenation in the rest of the word
+% allowed, this works for c, C, g, G, H, J, s, S, z, Z\\
+% |^h| & prevents h\llap{\^{}} from becoming too tall\\
+% |^j| & gives \^\j\\
+% |^u| & gives \u u, with hyphenation in the rest of the word
+% allowed\\
+% |^U| & gives \u U, with hyphenation in the rest of the word
+% allowed\\
+% \verb=^|= & inserts a |\discretionary{-}{}{}|\\
+% \end{tabular}
+% \caption{The functions of the active character for Esperanto.}
+% \label{tab:esp-act}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{esperanto-1.4i}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{esperanto}\captionsesperanto
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{esperanto} will be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@esperanto| to see whether we have to do
+% something here.
+%
+% \changes{esperanto-1.0b}{1991/10/29}{Removed use of
+% \cs{makeatletter}}
+% \changes{esperanto-1.1}{1992/02/15}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \changes{esperanto-1.4d}{1994/06/25}{Use \cs{@nopatterns} for the
+% warning}
+% \begin{macrocode}
+\ifx\l@esperanto\@undefined
+ \@nopatterns{Esperanto}
+ \adddialect\l@esperanto0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to the
+% Esperanto language. The reason for this is that a user might want
+% to switch back and forth between languages.
+%
+% \begin{macro}{\captionsesperanto}
+% The macro |\captionsesperanto| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{esperanto-1.1}{1992/02/15}{Added \cs{seename},
+% \cs{alsoname} and \cs{prefacename}}
+% \changes{esperanto-1.3}{1993/07/10}{Repaired a number of mistakes,
+% indicated by D. Ederveen}
+% \changes{esperanto-1.3}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{esperanto-1.4a}{1994/02/04}{added missing closing brace}
+% \changes{esperanto-1.4g}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{esperanto-1.4i}{1996/07/06}{Replaced `Proof' by `Pruvo'
+% PR 2207}
+% \changes{esperanto-1.4p}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{esperanto-1.4q}{2002/01/07}{Added translation for Glossary}
+% \begin{macrocode}
+\addto\captionsesperanto{%
+ \def\prefacename{Anta\u{u}parolo}%
+ \def\refname{Cita\^\j{}oj}%
+ \def\abstractname{Resumo}%
+ \def\bibname{Bibliografio}%
+ \def\chaptername{{\^C}apitro}%
+ \def\appendixname{Apendico}%
+ \def\contentsname{Enhavo}%
+ \def\listfigurename{Listo de figuroj}%
+ \def\listtablename{Listo de tabeloj}%
+ \def\indexname{Indekso}%
+ \def\figurename{Figuro}%
+ \def\tablename{Tabelo}%
+ \def\partname{Parto}%
+ \def\enclname{Aldono(j)}%
+ \def\ccname{Kopie al}%
+ \def\headtoname{Al}%
+ \def\pagename{Pa\^go}%
+ \def\subjectname{Temo}%
+ \def\seename{vidu}% a^u: vd.
+ \def\alsoname{vidu anka\u{u}}% a^u vd. anka\u{u}
+ \def\proofname{Pruvo}%
+ \def\glossaryname{Glosaro}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateesperanto}
+% The macro |\dateesperanto| redefines the command |\today| to
+% produce Esperanto dates.
+% \changes{esperanto-1.3}{1993/07/10}{Removed the capitals from
+% \cs{today}}
+% \changes{esperanto-1.4k}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{esperanto-1.4k}{1998/03/27}{Removed Rthe use of \cs{edef}
+% again}
+% \begin{macrocode}
+\def\dateesperanto{%
+ \def\today{\number\day{--a}~de~\ifcase\month\or
+ januaro\or februaro\or marto\or aprilo\or majo\or junio\or
+ julio\or a\u{u}gusto\or septembro\or oktobro\or novembro\or
+ decembro\fi,\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasesperanto}
+% \begin{macro}{\noextrasesperanto}
+% The macro |\extrasesperanto| performs all the extra definitions
+% needed for the Esperanto language. The macro |\noextrasesperanto|
+% is used to cancel the actions of |\extrasesperanto|.
+%
+% For Esperanto the |^| character is made active. This is done
+% once, later on its definition may vary.
+%
+% \begin{macrocode}
+\initiate@active@char{^}
+% \end{macrocode}
+% Because the character |^| is used in math mode with quite a
+% different purpose we need to add an extra level of evaluation to
+% the definition of the active |^|. It checks whether math mode is
+% active; if so the shorthand mechanism is bypassed by a direct
+% call of |\normal@char^|.
+% \changes{esperanto-1.4n}{1999/09/30}{Added a check for math mode to
+% the definition of the shorthand character}
+% \changes{esperant0-1.4o}{1999/12/18}{Moved the check for math to
+% babel.def}
+% \begin{macrocode}
+\addto\extrasesperanto{\languageshorthands{esperanto}}
+\addto\extrasesperanto{\bbl@activate{^}}
+\addto\noextrasesperanto{\bbl@deactivate{^}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% In order to prevent problems with the active |^| we add a
+% shorthand on system level which expands to a `normal |^|.
+% \changes{esperanto-1.4l}{1999/04/11}{Added a shorthand definition on
+% system level}
+% \begin{macrocode}
+\declare@shorthand{system}{^}{\csname normal@char\string^\endcsname}
+% \end{macrocode}
+% And here are the uses of the active |^|:
+% \changes{esperanto-1.4h}{1995/07/27}{Added a few shorthands}
+% \begin{macrocode}
+\declare@shorthand{esperanto}{^c}{\^{c}\allowhyphens}
+\declare@shorthand{esperanto}{^C}{\^{C}\allowhyphens}
+\declare@shorthand{esperanto}{^g}{\^{g}\allowhyphens}
+\declare@shorthand{esperanto}{^G}{\^{G}\allowhyphens}
+\declare@shorthand{esperanto}{^h}{h\llap{\^{}}\allowhyphens}
+\declare@shorthand{esperanto}{^H}{\^{H}\allowhyphens}
+\declare@shorthand{esperanto}{^j}{\^{\j}\allowhyphens}
+\declare@shorthand{esperanto}{^J}{\^{J}\allowhyphens}
+\declare@shorthand{esperanto}{^s}{\^{s}\allowhyphens}
+\declare@shorthand{esperanto}{^S}{\^{S}\allowhyphens}
+\declare@shorthand{esperanto}{^u}{\u u\allowhyphens}
+\declare@shorthand{esperanto}{^U}{\u U\allowhyphens}
+\declare@shorthand{esperanto}{^|}{\discretionary{-}{}{}\allowhyphens}
+% \end{macrocode}
+%
+% \begin{macro}{\Esper}
+% \begin{macro}{\esper}
+% In \file{esperant.sty} J\"org Knappen provides the macros
+% |\esper| and |\Esper| that can be used instead of |\alph| and
+% |\Alph|. These macros are available in this file as well.
+%
+% Their definition takes place in two steps. First the toplevel.
+% \begin{macrocode}
+\def\esper#1{\@esper{\@nameuse{c@#1}}}
+\def\Esper#1{\@Esper{\@nameuse{c@#1}}}
+% \end{macrocode}
+% Then the second level.
+% \changes{esperanto-1.4q}{2002/01/08}{Removed the extra level of
+% expansion for more than five items, as was done in \LaTeX}
+% \begin{macrocode}
+\def\@esper#1{%
+ \ifcase#1\or a\or b\or c\or \^c\or d\or e\or f\or g\or \^g\or
+ h\or h\llap{\^{}}\or i\or j\or \^\j\or k\or l\or m\or n\or o\or
+ p\or s\or \^s\or t\or u\or \u{u}\or v\or z\else\@ctrerr\fi}
+\def\@Esper#1{%
+ \ifcase#1\or A\or B\or C\or \^C\or D\or E\or F\or G\or \^G\or
+ H\or \^H\or I\or J\or \^J\or K\or L\or M\or N\or O\or
+ P\or S\or \^S\or T\or U\or \u{U}\or V\or Z\else\@ctrerr\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\hodiau}
+% \begin{macro}{\hodiaun}
+% In \file{esperant.sty} J\"org Knappen provides two alternative
+% macros for |\today|, |\hodiau| and |\hodiaun|. The second macro
+% produces an accusative version of the date in Esperanto.
+% \begin{macrocode}
+\addto\dateesperanto{\def\hodiau{la \today}}
+\def\hodiaun{la \number\day --an~de~\ifcase\month\or
+ januaro\or februaro\or marto\or aprilo\or majo\or junio\or
+ julio\or a\u{u}gusto\or septembro\or oktobro\or novembro\or
+ decembro\fi, \space \number\year}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{esperanto-1.4i}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{esperanto}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/esperanto.ins b/Master/texmf-dist/source/generic/babel/esperanto.ins
new file mode 100644
index 00000000000..25e39025572
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/esperanto.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2000/09/26}
+\def\batchfile{esperanto.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{esperanto.ldf}{\from{esperanto.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/estonian.dtx b/Master/texmf-dist/source/generic/babel/estonian.dtx
new file mode 100644
index 00000000000..74bbb9a3384
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/estonian.dtx
@@ -0,0 +1,426 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{330}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{estonian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{estonian}
+%\fi
+%\ProvidesFile{estonian.dtx}
+ [2005/03/30 v1.0h Estonian support from the babel system]
+%\iffalse
+%% File `estonian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Estonian language Definition File
+%% Copyright (C) 1991 - 2005
+%% by Enn Saar, Tartu Astrophysical Observatory
+% Tartu Astrophysical Observatory
+% EE-2444 T\~oravere
+% Estonia
+% tel: +372 7 410 267
+% fax: +372 7 410 205
+% saar@aai.ee
+%
+% Johannes Braams, TeXniek
+%
+%% Please report errors to: Enn Saar saar at aai.ee
+%% (or J.L. Braams babel atbraams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Estonian language definition file. The original
+% version of this file was written by Enn Saar,
+% (saar@aai.ee).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{estonian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \changes{estonian-1.0b}{1995/06/16}{corrected typos}
+% \changes{estonian-1.0e}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \GetFileInfo{estonian.dtx}
+%
+% \section{The Estonian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author is Enn Saar,
+% (\texttt{saar@aai.ee}).} defines the language definition macro's
+% for the Estonian language.
+%
+% This file was written as part of the TWGML project, and borrows
+% heavily from the \babel\ German and Spanish language files
+% \file{germanb.ldf} and \file{spanish.ldf}.
+%
+% Estonian has the same umlauts as German (\"a, \"o, \"u), but in
+% addition to this, we have also \~o, and two recent characters
+% \v s and \v z, so we need at least two active characters.
+% We shall use |"| and |~| to type Estonian accents on ASCII
+% keyboards (in the 7-bit character world). Their use is given in
+% table~\ref{tab:estonian-quote}.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |~o| & |\~o|, (and uppercase); \\
+% |"a| & |\"a|, (and uppercase); \\
+% |"o| & |\"o|, (and uppercase); \\
+% |"u| & |\"u|, (and uppercase); \\
+% |~s| & |\v s|, (and uppercase); \\
+% |~z| & |\v z|, (and uppercase); \\
+% \verb="|= & disable ligature at this position;\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word;\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word; \\
+% |"`| & for Estonian low left double quotes (same as German);\\
+% |"'| & for Estonian right double quotes;\\
+% |"<| & for French left double quotes (also rather popular)\\
+% |">| & for French right double quotes.\\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{estonian.ldf}}\label{tab:estonian-quote}
+% \end{center}
+% \end{table}
+% These active accent characters behave according to their original
+% definitions if not followed by one of the characters indicated in
+% that table; the original quote character can be typed using the
+% macro |\dq|.
+%
+% We support also the T1 output encoding (and Cork-encoded text
+% input). You can choose the T1 encoding by the command
+% |\usepackage[T1]{fontenc}|. This package must be loaded before
+% \babel. As the standard Estonian hyphenation file
+% \file{eehyph.tex} is in the Cork encoding, choosing this encoding
+% will give you better hyphenation.
+%
+% As mentioned in the Spanish style file, it may happen that some
+% packages fail (usually in a \cs{message}). In this case you
+% should change the order of the \cs{usepackage} declarations
+% or the order of the style options in \cs{documentclass}.
+%
+% \StopEventually{}
+%
+% \subsection{Implementation}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{estonian-1.0e}{1996/10/30}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{estonian}\captionsestonian
+% \end{macrocode}
+%
+% If Estonian is not included in the format file (does not have
+% hyphenation patterns), we shall use English hyphenation.
+%
+% \begin{macrocode}
+\ifx\l@estonian\@undefined
+ \@nopatterns{Estonian}
+ \adddialect\l@estonian0
+\fi
+% \end{macrocode}
+%
+% Now come the commands to switch to (and from) Estonian.
+%
+% \begin{macro}{\captionsestonian}
+% The macro |\captionsestonian| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+%
+% \changes{estonian-1.0c}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{estonian-1.0d}{1995/07/27}{Added translation of `Proof'}
+% \changes{estonian-1.0h}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsestonian{%
+ \def\prefacename{Sissejuhatus}%
+ \def\refname{Viited}%
+ \def\bibname{Kirjandus}%
+ \def\appendixname{Lisa}%
+ \def\contentsname{Sisukord}%
+ \def\listfigurename{Joonised}%
+ \def\listtablename{Tabelid}%
+ \def\indexname{Indeks}%
+ \def\figurename{Joonis}%
+ \def\tablename{Tabel}%
+ \def\partname{Osa}%
+ \def\enclname{Lisa(d)}%
+ \def\ccname{Koopia(d)}%
+ \def\headtoname{}%
+ \def\pagename{Lk.}%
+ \def\seename{vt.}%
+ \def\alsoname{vt. ka}%
+ \def\proofname{Korrektuur}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }
+% \end{macrocode}
+%
+% These captions contain accented characters.
+%
+% \begin{macrocode}
+\begingroup \catcode`\"\active
+\def\x{\endgroup
+\addto\captionsestonian{%
+ \def\abstractname{Kokkuv~ote}%
+ \def\chaptername{Peat"ukk}}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateestonian}
+% The macro |\dateestonian| redefines the command |\today| to
+% produce Estonian dates.
+% \changes{estonian-1.0f}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{estonian-1.0f}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\begingroup \catcode`\"\active
+\def\x{\endgroup
+ \def\month@estonian{\ifcase\month\or
+ jaanuar\or veebruar\or m"arts\or aprill\or mai\or juuni\or
+ juuli\or august\or september\or oktoober\or november\or
+ detsember\fi}}
+\x
+\def\dateestonian{%
+ \def\today{\number\day.\space\month@estonian
+ \space\number\year.\space a.}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasestonian}
+% \begin{macro}{\noextrasestonian}
+% The macro |\extrasestonian| will perform all the extra
+% definitions needed for Estonian. The macro |\noextrasestonian| is
+% used to cancel the actions of |\extrasestonian|. For Estonian,
+% |"| is made active and has to be treated as `special' (|~| is
+% active already).
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+\initiate@active@char{~}
+\addto\extrasestonian{\languageshorthands{estonian}}
+\addto\extrasestonian{\bbl@activate{"}\bbl@activate{~}}
+% \end{macrocode}
+% Store the original macros, and redefine accents.
+%
+% \begin{macrocode}
+\addto\extrasestonian{\babel@save\"\umlautlow\babel@save\~\tildelow}
+% \end{macrocode}
+%
+% \changes{estonian-1.0d}{1995/07/27}{Removed the code that changes
+% category, lower case, uper case and space factor codes }
+%
+% Estonian does not use extra spaces after sentences.
+%
+% \begin{macrocode}
+\addto\extrasestonian{\bbl@frenchspacing}
+\addto\noextrasestonian{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\estonianhyphenmins}
+% For Estonian, |\lefthyphenmin| and |\righthyphenmin| are
+% both~2.
+% \changes{estonian-1.0h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tildelow}
+% \begin{macro}{\gentilde}
+% \begin{macro}{\newtilde}
+% \begin{macro}{\newcheck}
+% The standard \TeX\ accents are too high for Estonian typography,
+% we have to lower them (following the \babel\ German style). For
+% a detailed explanation see the file \file{glyphs.dtx}.
+%
+% \begin{macrocode}
+\def\tildelow{\def\~{\protect\gentilde}}
+\def\gentilde#1{\if#1o\newtilde{#1}\else\if#1O\newtilde{#1}%
+ \else\newcheck{#1}%
+ \fi\fi}
+\def\newtilde#1{\leavevmode\allowhyphens
+ {\U@D 1ex%
+ {\setbox\z@\hbox{\char126}\dimen@ -.45ex\advance\dimen@\ht\z@
+ \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
+ \accent126\fontdimen5\font\U@D #1}\allowhyphens}
+\def\newcheck#1{\leavevmode\allowhyphens
+ {\U@D 1ex%
+ {\setbox\z@\hbox{\char20}\dimen@ -.45ex\advance\dimen@\ht\z@
+ \ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
+ \accent20\fontdimen5\font\U@D #1}\allowhyphens}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% We save the double quote character in |\dq|, and tilde in |\til|,
+% and store the original definitions of |\"| and |\~| as |\dieresis|
+% and |\texttilde|.
+%
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\edef\x{\endgroup
+ \def\noexpand\dq{"}
+ \def\noexpand\til{~}}
+\x
+\let\dieresis\"
+\let\texttilde\~
+% \end{macrocode}
+%
+% This part follows closely \file{spanish.ldf}. We check the
+% encoding and if it is T1, we have to tell \TeX\ about our
+% redefined accents.
+%
+% \changes{estonian-1.0g}{1999/04/11}{use \cs{bbl@t@one} instead of
+% \cs{bbl@next}}
+% \begin{macrocode}
+\ifx\f@encoding\bbl@t@one
+ \let\@umlaut\dieresis
+ \let\@tilde\texttilde
+ \DeclareTextComposite{\~}{T1}{s}{178}
+ \DeclareTextComposite{\~}{T1}{S}{146}
+ \DeclareTextComposite{\~}{T1}{z}{186}
+ \DeclareTextComposite{\~}{T1}{Z}{154}
+ \DeclareTextComposite{\"}{T1}{'}{17}
+ \DeclareTextComposite{\"}{T1}{`}{18}
+ \DeclareTextComposite{\"}{T1}{<}{19}
+ \DeclareTextComposite{\"}{T1}{>}{20}
+% \end{macrocode}
+%
+% If the encoding differs from T1, we expand the accents, enabling
+% hyphenation beyond the accent. In this case \TeX\ will not find
+% all possible breaks, and we have to warn people.
+%
+% \begin{macrocode}
+\else
+ \wlog{Warning: Hyphenation would work better for the T1 encoding.}
+ \let\@umlaut\newumlaut
+ \let\@tilde\gentilde
+\fi
+% \end{macrocode}
+%
+% Now we define the shorthands.
+%
+% \changes{estonian-1.0d}{1995/07/27}{The second argument was missing
+% in the definition of some of the double-quote shorthands}
+% \begin{macrocode}
+\declare@shorthand{estonian}{"a}{\textormath{\"{a}}{\ddot a}}
+\declare@shorthand{estonian}{"A}{\textormath{\"{A}}{\ddot A}}
+\declare@shorthand{estonian}{"o}{\textormath{\"{o}}{\ddot o}}
+\declare@shorthand{estonian}{"O}{\textormath{\"{O}}{\ddot O}}
+\declare@shorthand{estonian}{"u}{\textormath{\"{u}}{\ddot u}}
+\declare@shorthand{estonian}{"U}{\textormath{\"{U}}{\ddot U}}
+% \end{macrocode}
+% german and french quotes,
+% \changes{estonian-1.0f}{1997/04/03}{Removed empty groups after
+% double quote and guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{estonian}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{estonian}{"'}{%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}
+\declare@shorthand{estonian}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{estonian}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{estonian}{~o}{\textormath{\@tilde o}{\tilde o}}
+\declare@shorthand{estonian}{~O}{\textormath{\@tilde O}{\tilde O}}
+\declare@shorthand{estonian}{~s}{\textormath{\@tilde s}{\check s}}
+\declare@shorthand{estonian}{~S}{\textormath{\@tilde S}{\check S}}
+\declare@shorthand{estonian}{~z}{\textormath{\@tilde z}{\check z}}
+\declare@shorthand{estonian}{~Z}{\textormath{\@tilde Z}{\check Z}}
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{estonian}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{estonian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+\declare@shorthand{estonian}{""}{\dq}
+\declare@shorthand{estonian}{~~}{\til}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{estonian-1.0e}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{estonian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/estonian.ins b/Master/texmf-dist/source/generic/babel/estonian.ins
new file mode 100644
index 00000000000..ed51cbad940
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/estonian.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{estonian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{estonian.ldf}{\from{estonian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/finnish.dtx b/Master/texmf-dist/source/generic/babel/finnish.dtx
new file mode 100644
index 00000000000..ccd3b9e62e4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/finnish.dtx
@@ -0,0 +1,362 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{172}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{finnish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{finnish}
+%\fi
+%\ProvidesFile{finnish.dtx}
+ [2005/03/30 v1.3p Finnish support from the babel system]
+%\iffalse
+%% File `finnish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Finnish language definition file. A contribution
+% was made by Mikko KANERVA (KANERVA@CERNVM) and Keranen Reino
+% (KERANEN@CERNVM).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{finnish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{finnish.dtx}
+%
+% \changes{finnish-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{finnish-1.1}{1991/02/15}{Brought up-to-date with babel 3.2a}
+% \changes{finnish-1.2}{1994/02/27}{Update for \LaTeXe}
+% \changes{finnish-1.3c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{finnish-1.3d}{1994/06/30}{Removed a few references to
+% \file{babel.com}}
+% \changes{finnish-1.3i}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Finnish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Mikko KANERVA
+% (\texttt{KANERVA@CERNVM}) and Keranen Reino
+% (\texttt{KERANEN@CERNVM}).} defines all the language definition
+% macros for the Finnish language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:finnish-quote} an overview is given of its purpose.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |"=| & an explicit hyphen sign for expressions such as
+% ``pakastekaapit ja -arkut''.\\
+% |""| & like \verb="-=, but producing no hyphen sign (for
+% words that should break at some sign such as
+% ``entrada/salida.''\\
+% |"`| & lowered double left quotes (looks like ,,)\\
+% |"'| & normal double right quotes\\
+% |"<| & for French left double quotes (similar to $<<$).\\
+% |">| & for French right double quotes (similar to $>>$).\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word.
+% \end{tabular}
+% \caption{The extra definitions made by \file{finnish.ldf}}
+% \label{tab:finnish-quote}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{finnish-1.3i}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{finnish}\captionsfinnish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{finnish} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@finnish| to see whether we have to do something here.
+%
+% \changes{finnish-1.0b}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \changes{finnish-1.1}{1992/02/15}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{finnish-1.3c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@finnish\@undefined
+ \@nopatterns{Finnish}
+ \adddialect\l@finnish0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to the
+% Finnish language. The reason for this is that a user might want
+% to switch back and forth between languages.
+%
+% \begin{macro}{\captionsfinnish}
+% The macro |\captionsfinnish| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{finnish-1.1}{1992/02/15}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{finnish-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{finnish-1.1.2}{1993/09/16}{Added translations}
+% \changes{finnish-1.3g}{1995/07/02}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{finnish-1.3h}{1995/07/25}{Added finnish word for `Proof'}
+% \changes{finnish-1.3n}{2000/09/19}{Added \cs{glossaryname}}
+% \changes{finnish-1.3o}{2001/03/12}{Provided translation for
+% Glossary}
+% \begin{macrocode}
+\addto\captionsfinnish{%
+ \def\prefacename{Esipuhe}%
+ \def\refname{Viitteet}%
+ \def\abstractname{Tiivistelm\"a}
+ \def\bibname{Kirjallisuutta}%
+ \def\chaptername{Luku}%
+ \def\appendixname{Liite}%
+ \def\contentsname{Sis\"alt\"o}% /* Could be "Sis\"allys" as well */
+ \def\listfigurename{Kuvat}%
+ \def\listtablename{Taulukot}%
+ \def\indexname{Hakemisto}%
+ \def\figurename{Kuva}%
+ \def\tablename{Taulukko}%
+ \def\partname{Osa}%
+ \def\enclname{Liitteet}%
+ \def\ccname{Jakelu}%
+ \def\headtoname{Vastaanottaja}%
+ \def\pagename{Sivu}%
+ \def\seename{katso}%
+ \def\alsoname{katso my\"os}%
+ \def\proofname{Todistus}%
+ \def\glossaryname{Sanasto}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datefinnish}
+% The macro |\datefinnish| redefines the command |\today| to
+% produce Finnish dates.
+% \changes{finnish-1.3e}{1994/07/12}{Added a`.' after the number of
+% the day}
+% \changes{finnish-1.3k}{1997/10/01}{Use \cs{edef} to define \cs{today}
+% to save memory}
+% \changes{finnish-1.3k}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\datefinnish{%
+ \def\today{\number\day.~\ifcase\month\or
+ tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
+ toukokuuta\or kes\"akuuta\or hein\"akuuta\or elokuuta\or
+ syyskuuta\or lokakuuta\or marraskuuta\or joulukuuta\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasfinnish}
+% \begin{macro}{\noextrasfinnish}
+% Finnish has many long words (some of them compound, some not).
+% For this reason hyphenation is very often the only solution in
+% line breaking. For this reason the values of |\hyphenpenalty|,
+% |\exhyphenpenalty| and |\doublehyphendemerits| should be
+% decreased. (In one of the manuals of style Matti Rintala noticed
+% a paragraph with ten lines, eight of which ended in a hyphen!)
+%
+% Matti Rintala noticed that with these changes \TeX\ handles
+% Finnish very well, although sometimes the values of |\tolerance|
+% and |\emergencystretch| must be increased. However, I don't think
+% changing these values in \file{finnish.ldf} is appropriate, as
+% the looseness of the font (and the line width) affect the correct
+% choice of these parameters.
+% \changes{finnish-1.3f}{1995/05/13}{Added the setting of more
+% hyphenation parameters, according to PR1027}
+% \begin{macrocode}
+\addto\extrasfinnish{%
+ \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
+ \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
+ \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
+ \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
+ }
+\addto\noextrasfinnish{}
+% \end{macrocode}
+%
+% Another thing |\extrasfinnish| needs to do is to ensure that
+% |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasfinnish| will switch it of again.
+% \changes{finnish-1.3f}{1995/05/15}{Added the setting of
+% \cs{frenchspacing}}
+% \begin{macrocode}
+\addto\extrasfinnish{\bbl@frenchspacing}
+\addto\noextrasfinnish{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% For Finnish the \texttt{"} character is made active. This is
+% done once, later on its definition may vary. Other languages in
+% the same document may also use the \texttt{"} character for
+% shorthands; we specify that the finnish group of shorthands
+% should be used.
+% \changes{finnish-1.3g}{1995/07/02}{Added the active double quote}
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasfinnish{\languageshorthands{finnish}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{finnish-1.3n}{1999/12/16}{Deactive shorthands ouside of Finnish}
+% \begin{macrocode}
+\addto\extrasfinnish{\bbl@activate{"}}
+\addto\noextrasfinnish{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+%
+% The `umlaut' character should be positioned lower on \emph{all}
+% vowels in Finnish texts.
+% \begin{macrocode}
+\addto\extrasfinnish{\umlautlow\umlautelow}
+\addto\noextrasfinnish{\umlauthigh}
+% \end{macrocode}
+%
+% First we define access to the low opening double quote and
+% guillemets for quotations,
+% \changes{finnish-1.3k}{1997/04/03}{Removed empty groups after
+% double quote and guillemot characters}
+% \changes{finnish-1.3m}{1999/04/13}{Added misisng closing brace}
+% \begin{macrocode}
+\declare@shorthand{finnish}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{finnish}{"'}{%
+ \textormath{\textquotedblright}{\mbox{\textquotedblright}}}
+\declare@shorthand{finnish}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{finnish}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define two shorthands to be able to specify hyphenation
+% breakpoints that behave a little different from |\-|.
+% \changes{finnish-1.3p}{2001/11/13}{\texttt{"=} should also use
+% \cs{bbl@allowhyphens}}
+% \begin{macrocode}
+\declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{finnish}{""}{\hskip\z@skip}
+\declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{finnish}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\-}
+%
+% All that is left now is the redefinition of |\-|. The new version
+% of |\-| should indicate an extra hyphenation position, while
+% allowing other hyphenation positions to be generated
+% automatically. The standard behaviour of \TeX\ in this respect is
+% very unfortunate for languages such as Dutch, Finnish and German,
+% where long compound words are quite normal and all one needs is a
+% means to indicate an extra hyphenation position on top of the
+% ones that \TeX\ can generate from the hyphenation patterns.
+% \changes{finnish-1.3g}{1995/07/02}{Added change of \cs{-}}
+% \changes{finnish-1.3n}{2000/09/19}{\cs{allowhyphens} should have
+% been \cs{bbl@allowhyphens}}
+% \begin{macrocode}
+\addto\extrasfinnish{\babel@save\-}
+\addto\extrasfinnish{\def\-{\bbl@allowhyphens
+ \discretionary{-}{}{}\bbl@allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\finishhyphenmins}
+% The finnish hyphenation patterns can be used with |\lefthyphenmin|
+% set to~2 and |\righthyphenmin| set to~2.
+% \changes{finnish-1.3f}{1995/05/13}{use \cs{finnishhyphenmins} to
+% store the correct values}
+% \changes{finnish-1.3n}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{finnish-1.3i}{1996/11/02}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{finnish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
+
diff --git a/Master/texmf-dist/source/generic/babel/finnish.ins b/Master/texmf-dist/source/generic/babel/finnish.ins
new file mode 100644
index 00000000000..370fbf37b29
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/finnish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{finnish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{finnish.ldf}{\from{finnish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/frenchb.dtx b/Master/texmf-dist/source/generic/babel/frenchb.dtx
new file mode 100644
index 00000000000..279ee712f9b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/frenchb.dtx
@@ -0,0 +1,2477 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{1985}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript. Nothing to write to the .cfg file, if generated.
+%<*dtx>
+\ProvidesFile{frenchb.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{french}
+%\ProvidesFile{frenchb.dtx}
+%<*!cfg>
+ [2005/02/06 v1.6g French support from the babel system]
+%</!cfg>
+%<*cfg>
+%% frenchb.cfg: configuration file for frenchb.ldf
+%% Daniel Flipo Daniel.Flipo at univ-lille1.fr
+%</cfg>
+%% File `frenchb.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%<*!cfg>
+%% Frenchb language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%% Daniel Flipo, GUTenberg
+%
+%% Please report errors to: Daniel Flipo, GUTenberg
+%% Daniel.Flipo at univ-lille1.fr
+%</!cfg>
+%
+% This file is part of the babel system, it provides the source
+% code for the French language definition file.
+% For differences with francais.sty (author J. Braams) and with
+% french.sty (author B. Gaulle), see documentation printed by
+% |latex frenchb.dtx|.
+%
+%<*filedriver>
+\documentclass[a4paper]{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \mathit lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+\parindent = 0pt
+\begin{center}
+ \textbf{\Large A Babel language definition file for French}\\[3mm]^^A\]
+ Daniel \textsc{Flipo}\\
+ \texttt{Daniel.Flipo@univ-lille1.fr}
+\end{center}
+ \DocInput{frenchb.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{frenchb.dtx}
+%
+% \changes{frenchb-1.1}{1995/12/23}{Added a hook to insert space or
+% not before `double punctuation'.}
+%
+% \changes{frenchb-1.1b}{1996/08/07}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+%
+% \changes{frenchb-1.1b}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \changes{frenchb-1.3f}{1999/04/11}{Deleted sectioning command
+% \cs{section}\{About French Typography\}.}
+%
+% \section{The French language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.}, derived from \file{frenchy.sty}, defines all
+% the language definition macros for the French language.
+%
+% Customization for the French language is achieved following the
+% book ``Lexique des r\`egles typographiques en usage \`a
+% l'Imprimerie nationale'' troisi\`eme \'edition (1994),
+% ISBN-2-11-081075-0.
+%
+% This file has been designed to be used with \LaTeXe, \LaTeX-2.09
+% and Plain\TeX{} formats. If you are still using \LaTeX-2.09, you
+% \emph{should} consider switching to \LaTeXe!
+%
+% The command |\selectlanguage{french}| switches to the French
+% language%
+% \footnote{\texttt{\textbackslash selectlanguage\{francais\}}
+% and \texttt{\textbackslash selectlanguage\{frenchb\}} are kept
+% for backward compatibility but should no longer be used.},
+% with the following effects:
+% \begin{enumerate}
+% \item French hyphenation patterns are made active;
+% \item `double punctuation' is made active for correct spacing
+% in French;
+% \item |\today| prints the date in French;
+% \item the caption names are translated into French
+% (\LaTeX{} only);
+% \item the default items in itemize environment are set to `--'
+% instead of \textbullet, and all vertical spacing and glue
+% is deleted, a hook to reset standard \LaTeX{} spacing
+% is provided (|\FrenchItemizeSpacingfalse|);
+% it is possible to change `--' to something else (`---'
+% for instance) by redefining |\FrenchLabelItem|;
+% apart from the global hook |\FrenchLabelItem|, it is
+% also possible to change the `labelitems' at any level
+% (1 to 4) in French, using the standard \LaTeX{} syntax,
+% for instance: |\renewcommand{\labelitemii}{\textbullet}|;
+% in order to be effective in French, the redefinitions
+% have to be made when French is the current language
+% (i.e.\ \emph{after} the |\begin{document}|), the changes are
+% saved when switching to another language and will be
+% remembered of, when switching back to French;
+% \item vertical spacing in general \LaTeX{} lists is
+% shortened, a hook to reset standard \LaTeX{} settings
+% is provided (|\FrenchListSpacingfalse|) ;
+% \item the first paragraph of each section is indented
+% (\LaTeX{} only);
+% \item the space after |\dots| is removed in French.
+% \end{enumerate}
+%
+% Some commands are provided in |frenchb| to make typesetting
+% easier:
+% \begin{enumerate}
+% \item French quotation marks can be entered using the commands
+% |\og| and |\fg| which work in \LaTeXe, \LaTeX-2.09 and
+% Plain\TeX{}, their appearance depending on what is
+% available to draw them; if you use \LaTeXe{} \emph{and}
+% |T1|-encoding you can also enter them as
+% |<<~French quotation marks~>>| but then
+% \emph{don't forget} the unbreakable spaces, (|\og| and
+% |\fg| provide for correct line breaks and better
+% horizontal spacing).
+% |\og| and |\fg| can be used outside French, they provide
+% then English quotes `` and ''.
+% \item A command |\up| is provided to typeset superscripts like
+% |M\up{me}| (abbreviation for ``Madame''), |1\up{er}| (for
+% ``premier'').
+% \item Family names should be typeset in small capitals and never
+% be hyphenated, the macro |\bsc| (boxed small caps) does
+% this, e.g., |Leslie~\bsc{Lamport}| will produce
+% Leslie~\mbox{\textsc{Lamport}}.
+% \item Commands |\primo|, |\secundo|, |\tertio| and |\quarto|
+% may be used to enumerate in lists.
+% \item Abbreviations for ``Num\'ero'' and ``num\'ero'' are
+% obtained via the commands |\No|, |\no|.
+% \item Two commands are provided to typeset the symbol for
+% ``degr\'e'': |\degre| prints the raw character and
+% |\degres| should be used to typeset temperatures (e.g.,
+% ``|20~\degres C|'' with an unbreakable space), or for
+% alcohols' strengths (e.g., ``|45\degres|'' with \emph{no}
+% space in French).
+% \item In math mode the comma has to be surrounded with
+% braces to avoid a spurious space being inserted after it,
+% in decimal numbers for instance (see the \TeX{}book p.~134).
+% The command |\DecimalMathComma| makes the comma be an
+% ordinary character \emph{in French only} (no space added);
+% as a counterpart, if |\DecimalMathComma| is active, an
+% explicit space has to be added in lists and intervals:
+% |$[0,\ 1]$|, |$(x,\ y)$|. |\StandardMathComma| switches back
+% to the standard behaviour of the comma.
+% \item A command |\nombre| is provided to easily typeset numbers:
+% it works both in text and in math mode: inputting
+% |\nombre{3141,592653}| will format this number properly
+% according to the current language (French or non-French):
+% each slice of three digits will be separated either with
+% a comma in English or with a space in French (if you prefer
+% a thin space instead of a normal space, just add the command
+% |\ThinSpaceInFrenchNumbers| to the preamble of your document,
+% or to |frenchb.cfg|).
+% The command |\nombre| is a contribution of Vincent Jalby
+% using ideas of David Carlisle in comma.sty.
+% \item |frenchb| has been designed to take advantage of the |xspace|
+% package if present: adding |\usepackage{xspace}| in the
+% preamble will force macros like |\fg|, |\ier|, |\ieme|,
+% |\dots|, \dots, to respect the spaces you type after them,
+% for instance typing `|1\ier juin|' will print
+% `1\textsuperscript{er} juin' (no need for a forced space
+% after |1\ier|).
+% \item Two commands, |\FrenchLayout| and |\StandardLayout| (to be
+% used \emph{only in the preamble}) are provided to unify the
+% layout of multilingual documents (it mainly concerns lists)
+% regardless the current language (see section~\ref{sec-global}
+% for details).
+% \item Two commands |\AddThinSpaceBeforeFootnotes| and
+% |\FrenchFootnotes| enable to customize the layout of
+% footnotes following the French IN's specifications;
+% the first one, which can only be used \emph{before} the
+% |\begin{document}|, adds a thinspace in the running text
+% before the number or symbol calling the footnote; the
+% second one modifies the footnote's layout: it typesets
+% leading numbers as `1.\hspace{.5em}' instead of
+% `$\hbox{}^1$'. |\FrenchFootnotes| has no effect on footnotes
+% numbered with symbols (as in the |\thanks| command).
+%
+% None of these commands are active by default, both can
+% be best added to |frenchb.cfg| or to the preamble of the
+% document. |\FrenchFootnotes| and |\StandardFootnotes|,
+% which cancels the effect of |\FrenchFootnotes| for the
+% text coming next, can be used anywhere in the document.
+% The command |\StandardFootnotes| may be useful when
+% some footnotes are numbered with letters (inside minipages
+% for instance).
+%
+% |\AddThinSpaceBeforeFootnotes| and |\FrenchFootnotes| act
+% on \emph{all} footnotes whatever the current language is.
+% \end{enumerate}
+%
+% \vspace{\baselineskip}
+% All commands previously available in |francais.ldf| have been
+% included in |frenchb.ldf| for compatibility, sometimes with
+% updated definitions.
+%
+% The |french| package, by Bernard~\textsc{Gaulle}, was not
+% designed to run with \babel\ (although the latest versions claim
+% to be \babel\ compatible), but rather as a stand-alone package
+% for the French language.
+% It provides many more functionalities (like |\lettrine|,
+% |\sommaire|\dots) not available in |frenchb|,
+% at the cost of a much greater complexity and possible
+% incompatibilities with other languages.
+%
+% As |french| is known to produce the best layout available for
+% French typography, I have borrowed many ideas from Bernard's file.
+% I did my best to help users of both packages (|french| and
+% |frenchb|) to exchange their sources files easily (see the example
+% configuration file below in section~\ref{sec-cfg}), with one
+% exception which affects the way French quotation marks are
+% entered: |frenchb| uses \emph{macros} (|\og| and |\fg|) while
+% |french| uses active characters (|<<| and |>>|).
+%
+% \vspace{\baselineskip}
+% French typographic rules specify that some white space should be
+% present before `double punctuation' characters. These characters
+% are |;| |!| |?| and |:|.
+% In order to get this white space automatically, the category code
+% of these characters is made |\active|. In French, the user
+% \emph{should} input these four characters preceded with a space,
+% but as many people forget about it (even among native French
+% writers!), the default behaviour of |frenchb| is to automatically
+% add a |\thinspace| before `|;|' `|!|' `|?|' and a normal
+% (unbreakable) space before~`|:|' (this is the rule in French
+% typography). It's up to the user to add or not a space
+% \emph{after} `double punctuation' characters: usually a space is
+% necessary, but not always (before a full point or a closing brace
+% for instance), so this cannot done automatically.
+%
+% In (rare) cases where no space should be added before a `double
+% punctuation', either use |\string;| |\string:| |\string!|
+% |\string?| instead of |;| |:| |!| |?|, or switch locally to
+% English. For instance you can type |C\string:TEX| or
+% |\begin{otherlanguage}{english}{C:TEX}\end{otherlanguage}| to
+% avoid the space before~|:| in a MS-DOS path.
+%
+% Some users dislike this automatic insertion of a space before
+% `double punctuation', and prefer to decide themselves whether a
+% space should be added or not; so a hook |\NoAutoSpaceBeforeFDP|
+% is provided: if this command is added (in file |frenchb.cfg|, or
+% anywhere in a document) |frenchb| will respect your typing, and
+% introduce a suitable space before `double punctuation' \emph{if
+% and only if} a space is typed in the source file before those
+% signs.
+%
+% The command |\AutoSpaceBeforeFDP| switches back to the
+% default behaviour of |frenchb|.
+%
+% \vspace{\baselineskip}
+% Once you have built your format, a good precaution would be to
+% perform some basic tests about hyphenation in French. For
+% \LaTeXe{} I suggest this:
+% \begin{itemize}
+% \item run the following file, with the encoding suitable for
+% your machine (\textit{my-encoding} will be |latin1| for
+% \textsc{unix} machines and PCs running~Windows, |applemac|
+% for Macintoshs, or |cp850| for PCs running~DOS). \\[3mm]^^A\]
+% |%%% Test file for French hyphenation.|\\
+% |\documentclass{article}|\\
+% |\usepackage[|\textit{my-encoding}|]{inputenc}|\\
+% |\usepackage[T1]{fontenc} % Use EC fonts for French|\\
+% |%\usepackage{aeguill} % Uncomment this line and|\\
+% | % comment out the preceeding one|\\
+% | % to use AE virtual fonts.|\\
+% |\usepackage[francais]{babel}|\\
+% |\begin{document}|\\
+% |\showhyphens{signal container \'ev\'enement alg\`ebre}|\\
+% |\showhyphens{|\texttt{signal container \'ev\'enement
+% alg\`ebre}|}|\\
+% |\end{document}|
+% \item check the hyphenations proposed by \TeX{} in your log-file;
+% in French you should get with both 7-bit and 8-bit encodings\\
+% \texttt{si-gnal contai-ner \'ev\'e-ne-ment al-g\`ebre}.\\
+% Do not care about how accented characters are displayed in the
+% log-file, what matters is the position of the `|-|' hyphen
+% signs \emph{only}.
+% \end{itemize}
+% If they are all correct, your installation (probably) works fine,
+% if one (or more) is (are) wrong, ask a local wizard to see what's
+% going wrong and perform the test again (or e-mail me about what
+% happens).\\
+% Frequent mismatches:
+% \begin{itemize}
+% \item you get |sig-nal con-tainer|, this probably means that the
+% hyphenation patterns you are using are for US-English, not for
+% French;
+% \item you get no hyphen at all in \texttt{\'ev\'e-ne-ment}, this
+% probably means that you are using CM fonts and the macro
+% |\accent| to produce accented characters.
+% Using EC fonts with built-in accented characters or Ml\TeX{}
+% with CM fonts avoids this type of mismatch.
+% \end{itemize}
+%
+% \vspace{\baselineskip}
+% |frenchb| has been improved using helpful suggestions from many
+% people, the main contributions came from Vincent~Jalby.
+% Thanks to all of them!
+%
+% \subsection*{Changes}
+%
+% First version released: 1.1 as of 1996/05/31 part of
+% \babel-3.6beta.
+%
+% \textbf{Changes in version 1.1b}: update for \babel-3.6.
+%
+% \textbf{Changes in version 1.2}: new command |\nombre| to
+% format numbers; removed command |\fup| borrowed from the
+% |french| package (|\up| does a better job in \LaTeXe);
+% also removed aliases |\french| and |\english| (frenchb.cfg
+% is a better place for these).
+%
+% \textbf{Changes in version 1.3}:
+% \begin{itemize}
+% \item The `xspace' package, when present, now controls
+% spacing after all (sensible) macros, formerly `xspace'
+% worked on |\fg| (suggested by Vincent~Jalby);
+% \item spacing after opening and before closing guillemets
+% improved as suggested by Thierry~Bouche;
+% \item a replacement for poor looking guillemets in OT1 encoding
+% (\emph{math} fonts are used to emulate them) is provided
+% if the file |ot2wncyr.fd| is found: this file defines an
+% OT2 encoding using AMS Cyrillic fonts; these
+% have built-in guillemets, they are \emph{text} fonts,
+% are free, and are distributed as METAFONT and Type1 fonts
+% (good for pdftex!), the replacement was suggested by
+% G\'erard~Degrez; if the files |ot2wncyr.fd|, |wncy*.mf|,
+% |wncy*.tfm|, and |wncy*.pfb| aren't available on your
+% system, you \emph{should} get them from \mbox{CTAN};
+% if your system complains about missing |wncy*.tfm| fonts,
+% it means your \TeX{} system is \emph{incomplete}, as a
+% quick fix, you can either remove |ot2wncyr.fd| or add the
+% command |\LasyGuillemets| to the preamble of your document
+% or to |frenchb.cfg|, then |frenchb| will behave as it did
+% in the previous versions.\\
+% In case Cyrillic guillemets do not fit, it is possible
+% to pick French guillemets from any font using the
+% command |\FrenchGuillemetsFrom| which requires 4 arguments
+% |\FrenchGuillemetsFrom{|{\it coding}|}{|{\it font}\relax
+% |}{|{\it char-left}|}{|{\it char-right}|}|, for instance,
+% add |\FrenchGuillemetsFrom{T1}{ppl}{19}{20}| to the
+% preamble of your document or to |frenchb.cfg|, to pick
+% French guillemets from Palatino (fontname=ppl, char 19
+% and 20 are left and right guillemets in T1-encoding).
+% This was suggested by Michel~Bovani.
+% \item the environment `itemize' has been redesigned in French
+% according to specifications from Jacques~Andr\'e
+% and Thierry~Bouche; it is possible to switch back to the
+% settings of version~1.2: add |\FrenchItemizeSpacingfalse|
+% \emph{after} loading |frenchb| in the preamble (this can
+% be useful to process old documents);
+% \item two switches have been added to go back to standard
+% \LaTeX{} list spacing |\FrenchItemizeSpacingfalse|
+% and |\FrenchListSpacingfalse|;
+% \item |\nombre| now properly handles signs in \LaTeXe;
+% \item definition of |\dots| changed in French;
+% \item in French, with the standard \LaTeX{} classes, captions
+% in figures and tables are printed with an endash instead
+% of a colon.
+% \end{itemize}
+%
+% \textbf{Changes in version 1.4}:
+% \begin{itemize}
+% \item the redefinition of|\@makecaption| is changed not to
+% overwrite the changes made by some classes (koma-script,
+% amsart, ua-thesis\dots) as pointed out by Werner~Lemberg;
+% \item a hook, |\FrenchGuillemetsFrom|, is provided to pick
+% French guillemets from any font (suggested by
+% Michel~Bovani, works \emph{only} in OT1-encoding);
+% \item a hook, |\FrenchLabelItem|, is provided to enable marks
+% other than `--' (|\textendash|) in French lists
+% (also suggested by Michel~Bovani);
+% \item |\DecimalMathComma|, |\StandardMathComma|,
+% |\ThinSpaceInFrenchNumbers| added;
+% \item |\FrenchLayout| and |\StandardLayout| added;
+% \item an example of customization file |frenchb.cfg| is
+% included in |frenchb.dtx|.
+% \end{itemize}
+%
+% \textbf{Changes in version 1.5}:
+% \begin{itemize}
+% \item The settings for spacing in French lists are no longer
+% tuned at the |\@trivlist| level but within |\list|; this
+% enables the users to provide their own settings for the
+% lists they define with |\list| (suggested by P. Pichaureau).
+% Although the layout of the standard lists
+% \emph{has not changed}, some lists, based directly on
+% |\@trivlist| or |\trivlist|, could possibly be typeset
+% differently when upgrading from version 1.4 to 1.5.
+% The command |\FrenchOldTrivlisttrue| could then, be useful
+% to process older documents.
+% \item Apart from the global hook |\FrenchLabelItem|, it is
+% now also possible to change the `labelitems' at any level
+% (1 to 4) in French, using the standard \LaTeX{} syntax,
+% for instance: |\renewcommand{\labelitemii}{\textbullet}|.
+% \item The internal name for the French language has been
+% changed from |frenchb| to |french|, it means that
+% |\captionsfrench|, |\datefrench|, |\extrasfrench|,
+% |\noextrasfrench|, are to be used now instead of
+% |\captionsfrenchb|, |\datefrenchb|, |\extrasfrenchb|,
+% |\noextrasfrenchb|.
+% \item From version 1.5f on, it is possible to customize
+% the space inserted before a colon in French; its default
+% value is |\space| (as in previous versions of |frenchb|),
+% but it can now be changed to |\thinspace| by redefining
+% |\Fcolonspace|.
+% \end{itemize}
+%
+% \textbf{Changes in version 1.6}:
+% \begin{itemize}
+% \item Two new commands are provided:
+% |\AddThinSpaceBeforeFootnotes| and |\FrenchFootnotes|;
+% they enable to typeset footnotes according to the
+% French IN's specifications (suggested by Jacques~Andr\'e).
+% \item |frenchb| will make use of |\textdegree| (TS1 encoding)
+% to typeset degrees whenever possible.
+% \item Default guillemets have been changed \emph{in OT1
+% encoding only} in version~1.6c: the former ones were picked
+% up in the wncyr fonts, which forced the cyrillic encoding to
+% OT2 when \babel{} was loaded with option |frenchb| before a
+% cyrillic language (|russian|, |ukrainian| or |bulgarian|).
+% Now, LM fonts for T1-encoding are available, we pick up the
+% guillemets from them, for OT1-encoding.
+% \item The config file |frenchb.cfg| is now loaded only when
+% \LaTeXe{} is used (from version~1.6g).
+% \item The command |\degres| now works also in math mode (from
+% version~1.6g), but not in bold versions (it is a text
+% character basically).
+% \end{itemize}
+%
+% \StopEventually{}
+%
+% \subsection*{Customizing frenchb: an example of configuration file}
+% \label{sec-cfg}
+%
+% \changes{frenchb-1.4d}{1999/12/19}{Do NOT set catcodes of French
+% quotes to 12 before launching \cs{initiate@active@char} in
+% frenchb.cfg, (problem on Mac reported by M.Bovani).}
+%
+% \begin{macrocode}
+%<*cfg>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% If you want to customize frenchb, please DO NOT hack into the code,
+%% copy this file into a directory searched by TeX, preferably a
+%% personal one on multi-user systems, and customize it as you like.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% WARNING: If you exchange your documents with colleagues using
+%% a different TeX installation, it is best NOT TO HAVE a frenchb.cfg
+%% file, and add instead the customization commands to the preamble
+%% of your documents after babel and frenchb have been loaded.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Uncomment the following line if you dislike frenchb automatically
+%% adding a space before French double punctuation (see frenchb.dtx
+%% for more information).
+%%
+%%\NoAutoSpaceBeforeFDP
+%%
+%% frenchb inserts a normal space before a colon in French (following
+%% I.N. specifications), but some people prefer a thinspace instead;
+%% uncomment the following line if you prefer a thinspace.
+%%
+%%\renewcommand{\Fcolonspace}{\thinspace}
+%%
+%% Uncomment the following line to force lasy font emulation for
+%% French guillemets in OT1 encoding; Polish guillemets are
+%% FAR BETTER LOOKING, you should normally leave this line commented out.
+%%
+%%\LasyGuillemets
+%%
+%% The following option is for backward compatibility ONLY
+%% (it might conflict with the russian option of babel).
+%% Uncomment the following line if you want to get back to
+%% the default guillemets used in versions $<$ 1.6b for OT1-encoding
+%% (no effect in T1-encoding).
+%%
+%%\CyrillicGuillemets
+%%
+%% If you dislike Polish guillemets in OT1-encoding, you can easily
+%% pick up yours from other fonts, examples below: Palatino or
+%% cyrillic CMR T2A encoded font.
+%% The four arguments are: encoding, font name, character codes of
+%% the opening and closing guillemets in the selected font.
+%%
+%%\FrenchGuillemetsFrom{T1}{ppl}{19}{20}
+%%\FrenchGuillemetsFrom{T2A}{cmr}{190}{191}
+%%
+%% Uncomment the following line if you don't want frenchb to change
+%% LaTeX standard settings for vertical spacing in 'itemize' lists.
+%% LaTeX standard settings were used by frenchb in versions < 1.3,
+%% so you may want to uncomment the following line to process older
+%% documents.
+%%
+%%\FrenchItemizeSpacingfalse
+%%
+%% frenchb tunes vertical spaces in all lists (at \list level),
+%% uncomment the following line if you prefer LaTeX standard settings
+%% (this flag is new in version 1.3). When \ifFrenchItemizeSpacing is
+%% `true' (default setting), this flag has no effect on itemize lists.
+%%
+%%\FrenchListSpacingfalse
+%%
+%% The command \FrenchLabelItem can be used to set the `labelitems'
+%% for all levels in French. For instance, to get long dashes, use:
+%%
+%%\renewcommand{\FrenchLabelItem}{\textemdash}
+%%
+%% You can also have different `labelitems' for each level in French:
+%%
+%%\renewcommand{\Frlabelitemi}{\textemdash}
+%%\renewcommand{\Frlabelitemii}{\bfseries\textendash}
+%%\renewcommand{\Frlabelitemiii}{\textbullet}
+%%\renewcommand{\Frlabelitemiv}{}
+%%
+%% Uncomment the following line if you want a thinspace to be added
+%% in the running text before the footnote number or symbol.
+%%
+%%\AddThinSpaceBeforeFootnotes
+%%
+%% Uncomment the following line if you want footnotes to be typeset
+%% according the specifications of the French `Imprimerie Nationale'.
+%%
+%%\FrenchFootnotes
+%%
+%% Uncomment the following line if you want the command \nombre to
+%% insert thin spaces (1/6em) instead of normal spaces (0.3em)
+%% between slices of 3 digits when typesetting numbers in French.
+%%
+%%\ThinSpaceInFrenchNumbers
+%%
+%% If you are bored to type {,} every time you want a decimal comma in
+%% math mode, uncomment the following line (and don't forget to add a
+%% forced space after the comma in lists and intervals: $(x,\ y)$ and
+%% $[0,\ 1]$). I suggest NOT TO UNCOMMENT the following line,
+%% and to switch between the decimal comma and the standard comma
+%% using \DecimalMathComma and \StandardMathComma inside the document.
+%%
+%%\DecimalMathComma
+%%
+%% If you do not want the appearance of lists to depend on the current
+%% language, add ONE of these two commands: \FrenchLayout (for a
+%% document mainly in French) or \StandardLayout (for a document
+%% mainly in English).
+%%
+%%\FrenchLayout
+%%\StandardLayout
+%%
+%% With the standard LaTeX classes (article.cls, report.cls, book.cls)
+%% you can change the separator used in figure and table captions in
+%% French with \CaptionSeparator, for instance (the default value of
+%% \CaptionSeparator in French is '\space\textendash\space'):
+%%
+%%\addto\captionsfrench{\def\CaptionSeparator{\space\textemdash\space}}
+%%
+%% You might want to change some of the translations of caption names,
+%% you can do it this way, for instance:
+%%
+%%\addto\captionsfrench{\def\figurename{{\scshape Figure}}}
+%%\addto\captionsfrench{\def\tablename{{\scshape Table}}}
+%%\addto\captionsfrench{\def\proofname{Preuve}}
+%%
+%% If French guillemets are available on your keyboard, you can use
+%% them instead of the commands \og and \fg: REPLACE << and >> in
+%% the following code by your ready-made guillemets (2 occurrences
+%% for each) AND uncomment the resulting code.
+%% WARNINGS:
+%% 1) This will reduce the portability of your source files!
+%% 2) This adds two active characters.
+%% 3) If you add this stuff to the preamble of a document, you'll
+%% need to wrap it in \makeatletter ... \makeatother.
+%%
+%% \ifx\mule@def\undefined
+%% \initiate@active@char{<<}
+%% \initiate@active@char{>>}
+%% \AtBeginDocument{%
+%% \def<<{\og\ignorespaces}%
+%% \def>>{{\fg}}%
+%% }%
+%% \else %%% For the CJK package, see MULEenc.sty.
+%% \mule@def{11}{\og\ignorespaces}
+%% \mule@def{27}{{\fg}}
+%% \fi
+%%
+%% The rest is for compatibility with Bernard Gaulle's french.sty:
+%% if you want to typeset with babel/frenchb files originally written
+%% for french.sty, you will probably want to uncomment these lines.
+%%
+%% Uncomment these lines if you want the aliases \numero and \Numero
+%% (as in french.sty) for \no and \No.
+%%
+%%\let\numero=\no
+%%\let\Numero=\No
+%%
+%% Uncomment the following lines if you want to substitute `\bsc' to
+%% either (or both) of french.sty macros `\fsc' and `\lsc'.
+%%
+%%\let\fsc=\bsc
+%%\let\lsc=\bsc
+%%
+%% Uncomment the following line if you want to substitute `\up' to
+%% french.sty macro `\fup'.
+%%
+%%\let\fup=\up
+%%
+%% Uncomment the following lines if you intend to use commands \french
+%% and \english to switch between languages, as in french.sty.
+%%
+%%\def\french{\leavevmode\selectlanguage{french}}
+%%\def\english{\leavevmode\selectlanguage{english}}
+%%
+%% Uncomment the following lines if you intend to use the command
+%% \AllTeX to refer to all flavours of TeX, (this command has been
+%% made popular by french.sty).
+%%
+%%\newcommand*{\AllTeX}{%
+%% (L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em)%
+%% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
+%</cfg>
+% \end{macrocode}
+%
+% \section{\TeX{}nical details}
+%
+% \subsection{Initial setup}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+%
+% \changes{frenchb-1.1b}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+%
+% \changes{frenchb-1.5g}{2001/09/09}{Let \cs{LdfInit} check for
+% \cs{datefrench} instead of \cs{NoAutoSpaceBeforeFDP},
+% as the later is also defined by russianb.ldf!}
+%
+% \begin{macrocode}
+%<*code>
+%%
+\LdfInit\CurrentOption\datefrench
+% \end{macrocode}
+%
+% \begin{macro}{\ifLaTeX}
+% \begin{macro}{\ifLaTeXe}
+% \changes{frenchb-1.1}{1996/02/12}{Use \cs{fmtname} to check
+% the format instead of \cs{newcommand}; define \cs{PlainFmtName}
+% and \cs{LaTeXeFmtName}.}
+%
+% \changes{frenchb-1.3f}{1999/04/11}{Use \cs{magnification} to check
+% if the format is plain (i.e \emph{not} \LaTeX). Checking the
+% format's name was not reliable: plain-like formats may not be
+% called just `plain' but `babel-plain'.}
+%
+% To check the format in use (plain, \LaTeX{} or \LaTeXe),
+% we'll need two new `if'.
+% \begin{macrocode}
+\newif\ifLaTeX
+\ifx\magnification\@undefined\LaTeXtrue\fi
+\newif\ifLaTeXe
+\ifx\@compatibilitytrue\@undefined\else\LaTeXetrue\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if@Two@E}
+% \changes{frenchb-1.1}{1996/03/01}{New test \cs{if@Two@E}.}
+%
+% We will need another `if' : |\if@Two@E| is true if and only if
+% \LaTeXe{} is running \emph{not} in compatibility mode. It is
+% used in the definitions of the command |\nombre| and |\up|.
+% The definition is somewhat complicated, due to the fact that
+% |\if@compatibility| is not recognized as a |\if| in
+% \LaTeX-2.09 based formats.
+% \begin{macrocode}
+\newif\if@Two@E \@Two@Etrue
+\def\@FI@{\fi}
+\ifx\@compatibilitytrue\@undefined
+ \@Two@Efalse \def\@FI@{\relax}
+\else
+ \if@compatibility \@Two@Efalse \fi
+\@FI@
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{frenchb-1.1b}{1996/11/07}{Removed test for \cs{l@english}}
+%
+% \changes{frenchb-1.2}{1997/01/05}{Check for hyphenation patterns}
+%
+% Check if hyphenation patterns for the French language have been
+% loaded in language.dat; we allow for the names `french',
+% `francais', `canadien' or `acadian'. The latter two are both
+% names used in Canada for variants of French that are in use in
+% that country.
+%
+% \changes{frenchb-1.5b}{2001/02/09}{Added support for canadien and
+% acadian}
+%
+% \begin{macrocode}
+\ifx\l@french\@undefined
+ \ifx\l@francais\@undefined
+ \ifx\l@canadien\@undefined
+ \ifx\l@acadian\@undefined
+ \@nopatterns{French}
+ \adddialect\l@french0
+ \else
+ \let\l@french\l@acadian
+ \fi
+ \else
+ \let\l@french\l@canadien
+ \fi
+ \else
+ \let\l@french\l@francais
+ \fi
+\fi
+% \end{macrocode}
+% After the statement above |\l@french| is sure to always be
+% defined.
+%
+% \changes{frenchb-1.2}{1997/01/05}{`french' `frenchb' and
+% `francais' are synonymous regardless of \cs{CurrentOption}.}
+% The internal name for the French language will be `french';
+% `francais' and `frenchb' will be synonymous for `french':
+% first let both names use the same hyphenation patterns.
+% Later we will have to set aliases for |\captionsfrench|,
+% |\datefrench|, |\extrasfrench| and |\noextrasfrench|.
+% As French uses the standard values of |\lefthyphenmin| (2)
+% and |\righthyphenmin| (3), no special setting is required here.
+%
+% \changes{frenchb-1.5d}{2001/02/16}{The internal name for the
+% French language is changed from `frenchb' to `french'.}
+%
+% \begin{macrocode}
+\def\CurrentOption{french}
+\ifx\l@francais\@undefined
+ \let\l@francais\l@french
+\fi
+\ifx\l@frenchb\@undefined
+ \let\l@frenchb\l@french
+\fi
+% \end{macrocode}
+% When this language definition file was loaded for one of the
+% Canadian versions of French we need to make sure that a suitable
+% hyphenation pattern register will be found by \TeX.
+%
+% \changes{babel-1.5b}{2001/02/09}{Added support for canadien and
+% acadian}
+%
+% \begin{macrocode}
+\ifx\l@canadien\@undefined
+ \let\l@canadien\l@french
+\fi
+\ifx\l@acadian\@undefined
+ \let\l@acadian\l@french
+\fi
+% \end{macrocode}
+%
+% \changes{frenchb-1.5g}{2001/09/09}{Instead of issuing a warning when
+% \cs{captionsfrancais} or \cs{captionsfrenchb} are customized in
+% the preamble, we merge the changes into \cs{captionsfrench}.}
+%
+% This language definition can be loaded for different variants of
+% the French language. The `key' \babel\ macros are only defined
+% once, using `french' as the language name, but |frenchb| and
+% |francais| are synonymous. As some users who choose |frenchb|
+% or |francais| as option of \babel, might customize
+% |\captionsfrenchb| or |\captionsfrancais| in the preamble,
+% we merge their changes at the |\begin{document}| when they do so
+% (only possible in \LaTeXe).
+% The other three commands for |\date|, |\extras|, and |\noextras|
+% are not likely to be modified by end-users.
+% The other variants of languages are defined by checking if the
+% relevant option was used and then adding one extra level of
+% expansion.
+%
+% \changes{frenchb-1.6c}{2003/06/30}{Bug correction: it is necessary
+% to re-execute \cs{captionsfrench} after merging
+% \cs{captionsfrenchb} and \cs{captionsfrancais}.}
+%
+% \begin{macrocode}
+\def\datefrancais{\datefrench}
+\def\extrasfrancais{\extrasfrench}
+\def\noextrasfrancais{\noextrasfrench}
+\def\datefrenchb{\datefrench}
+\def\extrasfrenchb{\extrasfrench}
+\def\noextrasfrenchb{\noextrasfrench}
+\ifLaTeXe
+ \AtBeginDocument{\let\captions@French\captionsfrench
+ \ifx\captionsfrenchb\@undefined
+ \let\captions@Frenchb\relax
+ \else
+ \let\captions@Frenchb\captionsfrenchb
+ \fi
+ \ifx\captionsfrancais\@undefined
+ \let\captions@Francais\relax
+ \else
+ \let\captions@Francais\captionsfrancais
+ \fi
+ \def\captionsfrench{\captions@French
+ \captions@Francais\captions@Frenchb}%
+ \def\captionsfrancais{\captionsfrench}%
+ \def\captionsfrenchb{\captionsfrench}%
+ \iflanguage{french}{\captionsfrench}{}%
+ }
+\else
+ \def\captionsfrancais{\captionsfrench}
+ \def\captionsfrenchb{\captionsfrench}
+\fi
+\@ifpackagewith{babel}{canadien}{%
+ \def\captionscanadien{\captionsfrench}%
+ \def\datecanadien{\datefrench}%
+ \def\extrascanadien{\extrasfrench}%
+ \def\noextrascanadien{\noextrasfrench}%
+ }{}
+\@ifpackagewith{babel}{acadian}{%
+ \def\captionsacadian{\captionsfrench}%
+ \def\dateacadian{\datefrench}%
+ \def\extrasacadian{\extrasfrench}%
+ \def\noextrasacadian{\noextrasfrench}%
+ }{}
+% \end{macrocode}
+%
+% \begin{macro}{\extrasfrench}
+% \begin{macro}{\noextrasfrench}
+% The macro |\extrasfrench| will perform all the extra
+% definitions needed for the French language.
+% The macro |\noextrasfrench| is used to cancel the actions of
+% |\extrasfrench|.\\
+% In French ``apostrophe'' is used in hyphenation in expressions
+% like |l'ambulance| (French patterns provide entries for this kind
+% of words). This means that the |\lccode| of ``apostrophe'' has
+% to be non null in French for proper hyphenation of those
+% expressions, and to be reset to null when exiting French.
+%
+% \changes{frenchb-1.2}{1997/01/05}{`french' `frenchb' and
+% `francais' are synonymous regardless of \cs{CurrentOption}.}
+%
+% \begin{macrocode}
+\@namedef{extras\CurrentOption}{\lccode`\'=`\'}
+\@namedef{noextras\CurrentOption}{\lccode`\'=0}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{frenchb-1.1}{1996/01/29}{Add some font changing
+% definitions.}
+%
+% It is best to use \LaTeXe{}'s font changing commands, and to
+% emulated those we need when they are not available, as in
+% Plain\TeX{} or \LaTeX-2.09. Be aware that old commands |\sc|,
+% |\it|, \textit{etc.} exist in \LaTeXe{}, but they behave like
+% they did in \LaTeX-2.09 (i.\,e., they switch back to
+% |\normalfont| instead of keeping the other font attributes
+% unchanged).
+% \begin{macrocode}
+\ifx\scshape\@undefined
+ \ifx\sc\@undefined
+ \let\scshape\relax
+ \else
+ \let\scshape\sc
+ \fi
+\fi
+\ifx\emph\@undefined
+ \ifx\em\@undefined
+ \let\emph\relax
+ \else
+ \def\emph#1{\em #1}
+ \fi
+\fi
+% \end{macrocode}
+%
+% \subsection{Caption names}
+%
+% The next step consists of defining the French equivalents for
+% the \LaTeX{} caption names.
+%
+% \changes{frenchb-1.3c}{1997/10/08}{changed \cs{@makecaption}
+% definition to add a hook \cs{CaptionSeparator}.}
+%
+% In French, captions in figures and tables should be printed with
+% endash (`--') instead of the standard `:'. If another separator
+% is preferred, see in the example configuration file above
+% (section~\ref{sec-cfg}) how to change the default value of
+% |\CaptionSeparator|.
+%
+% \changes{frenchb-1.4a}{1999/10/23}{frenchb-1.3 silently redefined
+% \cs{@makecaption}, overwriting changes made by some classes
+% like koma-script, ua-thesis\dots (pointed out by Werner~Lemberg).
+% New implementation suggested by Vincent~Jalby.}
+%
+% \changes{frenchb-1.4e}{2000/03/12}{Captions print twice with AMS
+% classes (amsart, amsbook). Bug reported by Jean-Fran\c cois
+% Mertens. Revert to implementation of version 1.4, which is
+% safer as \@makecaption can be changed unpredictably.}
+%
+% We first store the standard definition of |\@makecaption|
+% (e.g., the one provided in article.cls, report.cls, book.cls
+% which is frozen for \LaTeXe{} according to Frank Mittelbach),
+% in |\STD@makecaption|. `ATBeginDocument' we compare it to its
+% current definition (some classes like koma-script classes,
+% AMS classes, ua-thesis.cls\dots change it).
+% If they are identical, frenchb just adds a hook called
+% |\CaptionSeparator| to |\@makecaption|, |\CaptionSeparator|
+% defaults to ': ' as in the standard |\@makecaption|, and will be
+% changed to ' -- ' in French.
+% If the definitions differ, frenchb doesn't overwrite the changes,
+% but prints a message in the .log file.
+%
+% \changes{frenchb-1.4f}{2000/04/07}{Only issue a warning if
+% \cs{@makecaption} exists}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \long\def\STD@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+ \def\CaptionSeparator{\string:\space}
+ \long\def\FB@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1\CaptionSeparator #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1\CaptionSeparator #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+ \AtBeginDocument{%
+ \ifx\@makecaption\STD@makecaption
+ \let\@makecaption\FB@makecaption
+ \else
+ \ifx\@makecaption\@undefined\else
+ \PackageWarning{frenchb.ldf}%
+ {The definition of \protect\@makecaption\space
+ has been changed,\MessageBreak
+ frenchb will NOT customize it;\MessageBreak reported}%
+ \fi
+ \fi
+ \let\FB@makecaption\relax
+ \let\STD@makecaption\relax}
+ \expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \def\CaptionSeparator{\string:\space}}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\captionsfrench}
+% The macro |\captionsfrench| defines all strings used in the four
+% standard document classes provided with \LaTeX. Some authors do
+% not like some of these names; it is easy to change them in the
+% preamble \emph{after} loading |frenchb| (or in your file
+% |frenchb.cfg|), e.g
+% |\addto\captionsfrench{\def\figurename{Figure}}| will print
+% `Figure' in Roman instead of `\textsc{Fig.}'.
+%
+% \changes{frenchb-1.1}{1996/01/30}{This code is useless in Plain\TeX,
+% check the format before loading it.}
+%
+% \changes{frenchb-1.2}{1997/01/05}{Added aliases \cs{captionsfrenchb}
+% and \cs{captionsfrancais}.}
+%
+% \changes{frenchb-1.3c}{1997/10/08}{Added \cs{CaptionSeparator}.}
+%
+% \changes{frenchb-1.4a}{1999/10/23}{Changed `--' to
+% \cs{textendash} in \cs{CaptionSeparator} in case the ligature
+% doesn't exist (tt-fonts).}
+%
+% \changes{frenchb-1.4f}{2000/04/06}{Added \cs{glossaryname}}
+%
+% \begin{macrocode}
+\ifLaTeX
+\@namedef{captions\CurrentOption}{%
+ \def\refname{R\'ef\'erences}%
+ \def\abstractname{R\'esum\'e}%
+ \def\bibname{Bibliographie}%
+ \def\prefacename{Pr\'eface}%
+ \def\chaptername{Chapitre}%
+ \def\appendixname{Annexe}%
+ \def\contentsname{Table des mati\`eres}%
+ \def\listfigurename{Table des figures}%
+ \def\listtablename{Liste des tableaux}%
+ \def\indexname{Index}%
+ \def\figurename{{\scshape Fig.}}%
+ \def\tablename{{\scshape Tab.}}%
+ \def\CaptionSeparator{\space\textendash\space}%
+% \end{macrocode}
+% ``Premi\`ere partie'' instead of ``Part I''
+% \begin{macrocode}
+ \def\partname{\protect\@Fpt partie}%
+ \def\@Fpt{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or
+ Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or
+ Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or Onzi\`eme\or
+ Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or Quinzi\`eme\or
+ Seizi\`eme\or Dix-septi\`eme\or Dix-huiti\`eme\or Dix-neuvi\`eme\or
+ Vingti\`eme\fi}\space\def\thepart{}}%
+ \def\pagename{page}%
+ \def\seename{{\emph{voir}}}%
+ \def\alsoname{{\emph{voir aussi}}}%
+ \def\enclname{P.~J. }%
+ \def\ccname{Copie \`a }%
+ \def\headtoname{}%
+ \def\proofname{D\'emonstration}% for AMS-\LaTeX
+ \def\glossaryname{Glossaire}%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Punctuation}
+%
+% The `double punctuation' characters (|;| |!| |?| and |:|) have to
+% be made |\active| for an automatic control of the amount of space
+% to insert before them.
+% \begin{macrocode}
+\initiate@active@char{:}
+\initiate@active@char{;}
+\initiate@active@char{!}
+\initiate@active@char{?}
+% \end{macrocode}
+% We specify that the French group of shorthands should be used.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \languageshorthands{french}}
+% \end{macrocode}
+% These characters are `turned on' once, later their definition may
+% vary.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{:}\bbl@activate{;}%
+ \bbl@activate{!}\bbl@activate{?}}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@deactivate{:}\bbl@deactivate{;}%
+ \bbl@deactivate{!}\bbl@deactivate{?}}
+% \end{macrocode}
+%
+% One more thing |\extrasfrench| needs to do is to make sure that
+% |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasfrench| will switch it off again.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchspacing}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% \begin{macro}{\french@sh@;@}
+% We have to tune the amount of white space before \texttt{;}
+% \texttt{!} \texttt{?} and \texttt{:}. This should only happen
+% in horizontal mode, hence the test |\ifhmode|.
+%
+% \changes{frenchb-1.1}{1995/12/23}{Added a hook to insert space
+% or not before `double punctuation'.}
+%
+% In horizontal mode, if a space has been typed before `;' we
+% remove it and put an unbreakable |\thinspace| instead. If no
+% space has been typed, we add |\FDP@thinspace| which will be
+% defined, up to the user's wishes, as an automatic added
+% thin space, or as |\@empty|.
+%
+% \begin{macrocode}
+\declare@shorthand{french}{;}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+% \end{macrocode}
+% Now we can insert a |;| character.
+% \begin{macrocode}
+ \string;}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\french@sh@!@}
+% \begin{macro}{\french@sh@?@}
+%
+% Because these definitions are very similar only one is displayed
+% in a way that the definition can be easily checked.
+%
+% \begin{macrocode}
+\declare@shorthand{french}{!}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string!}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{french}{?}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string?}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\french@sh@:@}
+%
+% The `:' requires a normal space before it, instead of
+% a |\thinspace|.
+%
+% \begin{macrocode}
+\declare@shorthand{french}{:}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\Fcolonspace
+ \else
+ \FDP@colonspace
+ \fi
+ \fi
+ \string:}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{frenchb-1.1}{1995/12/23}{Added a hook to insert space
+% or not before `double punctuation'.}
+%
+% \changes{frenchb-1.5f}{2001/06/02}{Added a hook to customize
+% the space before the colon in French (thin or normal).}
+%
+% \begin{macro}{\Fcolonspace}
+% \begin{macro}{\AutoSpaceBeforeFDP}
+% \begin{macro}{\NoAutoSpaceBeforeFDP}
+% |\FDP@thinspace| and |\FDP@space| are defined as unbreakable
+% spaces by\\ |\AutoSpaceBeforeFDP| or as |\@empty| by
+% |\NoAutoSpaceBeforeFDP|.\\
+% Default is |\AutoSpaceBeforeFDP|.
+% \begin{macrocode}
+\newcommand{\Fcolonspace}{\space}
+\def\AutoSpaceBeforeFDP{%
+ \def\FDP@thinspace{\penalty\@M\thinspace}%
+ \def\FDP@colonspace{\penalty\@M\Fcolonspace}}
+\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty
+ \let\FDP@colonspace\@empty}
+\AutoSpaceBeforeFDP
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\system@sh@:@}
+% \begin{macro}{\system@sh@!@}
+% \begin{macro}{\system@sh@?@}
+% \begin{macro}{\system@sh@;@}
+%
+% When the active characters appear in an environment where their
+% French behaviour is not wanted they should give an `expected'
+% result. Therefore we define shorthands at system level as well.
+%
+% \begin{macrocode}
+\declare@shorthand{system}{:}{\string:}
+\declare@shorthand{system}{!}{\string!}
+\declare@shorthand{system}{?}{\string?}
+\declare@shorthand{system}{;}{\string;}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{French quotation marks}
+%
+% \changes{frenchb-1.3}{1997/04/24}{New implementation of guillemets.}
+%
+% \changes{frenchb-1.4}{1999/07/08}{Add a hook to pick French
+% guillemets from any font (suggested by Michel Bovani).}
+%
+% \changes{frenchb-1.3e}{1999/01/02}{Try to use AMS Cyrillic fonts
+% to provide better looking guillemets in OT1 encoding.}
+%
+% \changes{frenchb-1.6b}{2003/04/05}{Default OT1 guillemets are
+% now borrowed from Polish fonts, rather than from wncyr.}
+%
+% \changes{frenchb-1.6c}{2003/06/30}{OT1 `Polish' guillemets are
+% now taken from the LM fonts which will be part of TL8.}
+%
+% EC/LM fonts and standard PostScript fonts have built-in
+% guillemets, we of course use them. CM fonts have no French
+% guillemets built-in, so we have to emulate them:
+% \begin{itemize}
+% \item if a file `t1lmr.fd' is found, we expect the LM fonts
+% to be present on the system, so we pick up French guillemets
+% from them; before version 1.6b, French guillemets were
+% borrowed from the `wncyr' fonts, this has been changed because
+% it resulted in a conflict with the russian option of \babel.
+% Former Cyrillic guillemets are still available through the
+% command |\CyrillicGuillemets| (for backward compatibility).
+% \item otherwise we use math symbols, either \LaTeX's `lasy' font
+% if available, or \TeX{}~symbols |\ll| and |\gg| otherwise;
+% \end{itemize}
+%
+% The standard names for French quotation marks are |\guillemotleft|
+% and |\guillemotright|, these commands are defined in |t1enc.def|
+% for T1-encoding.
+% In \LaTeXe{} formats, we first define these commands for
+% OT1-encoding (for CM fonts), using either the Polish `pl*' fonts
+% or \LaTeX{}'s `lasy' fonts.
+% Other local text encodings \emph{should} define them too,
+% but if they don't, the OT1 definitions will be used.
+% The standard PostScript fonts should \emph{always} be used together
+% with T1-encoding (\emph{not} OT1), for proper hyphenation and
+% built-in (better looking) French quotation marks.
+%
+% \changes{frenchb-1.2b}{1997/04/24}{Spacing after opening and before
+% closing guillemets slightly enlarged and some glue added,
+% as suggested by Th.~Bouche. Unlike \cs{kern}, \cs{hskip} doesn't
+% inhibit hyphenation, nothing like \cs{allowhyphens} is required.}
+%
+% The next step is to provide correct spacing after |\guillemotleft|
+% and before |\guillemotright| : a space precedes and follows
+% quotation marks but no line break is allowed neither \emph{after}
+% the opening one, nor \emph{before} the closing one.
+% |\guill@spacing| which does the spacing, has been fine tuned by
+% Thierry Bouche.
+%
+% \changes{frenchb-1.3d}{1998/04/20}{Spacing after opening and before
+% closing guillemets changed again: normal space with little glue
+% (suggested by Th. Bouche).}
+%
+% The top macros for quotation marks will be called |\og|
+% (``\underline{o}uvrez \underline{g}uillemets'') and |\fg|
+% (``\underline{f}ermez \underline{g}uillemets'').\\
+% The top level definitions for French quotation marks are switched
+% on and off through the |\extrasfrench| |\noextrasfrench|
+% mechanism. Outside French, |\og| and |\fg| will typeset standard
+% English opening and closing double quotes.\\
+% As |\DeclareTextCommand| cannot be used after the
+% |\begin{document}| we introduce internal definitions
+% |\begin@guill| and |\end@guill|.\\
+% We'll try to be smart to users of D.~\textsc{Carlisle}'s |xspace|
+% package: if this package is loaded there will be no need for |{}|
+% or |\ | to get a space after |\fg|.
+%
+% \begin{macro}{\guillemotleft}
+% \begin{macro}{\guillemotright}
+% \begin{macro}{\og}
+% \begin{macro}{\fg}
+% \changes{frenchb-1.1}{1996/01/20}{A warning is now issued if \cs{og}
+% or \cs{fg} have been defined elsewhere in a \LaTeXe{} document
+% (suggested by Vincent Jalby).}
+% In \LaTeXe{} we provide a dummy definition for |\og| and |\fg|,
+% just to display an error message in case |\og| or |\fg| have been
+% defined elsewhere.
+%
+% \changes{frenchb-1.2b}{1997/04/24}{Define \cs{xspace} as \relax if
+% it is not defined by D. Carlisle `xspace.sty'. Will be used in
+% \cs{fg}, and \cs{ieme} ... \cs{ieres} (new for this release).}
+%
+% \changes{frenchb-1.5f}{2001/04/21}{\cs{og} and \cs{fg} should not
+% be expanded when written to a file; use \cs{renewcommand} (in
+% \cs{LaTeX}) to redefine them instead of \cs{let} or \cs{def}.}
+%
+% \begin{macrocode}
+\newcommand{\og}{\@empty}
+\newcommand{\fg}{\@empty}
+% \end{macrocode}
+% \begin{macro}{\FrenchGuillemetsFrom}
+% \begin{macrocode}
+\ifLaTeXe
+ \def\FrenchGuillemetsFrom#1#2#3#4{%
+ \DeclareFontEncoding{#1}{}{}%
+ \DeclareFontSubstitution{#1}{#2}{m}{n}%
+ \DeclareTextCommand{\guillemotleft}{OT1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3}}%
+ \DeclareTextCommand{\guillemotright}{OT1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}
+% \end{macrocode}
+% \begin{macro}{\CyrillicGuillemets}
+% \begin{macro}{\PolishGuillemets}
+% \begin{macro}{\LasyGuillemets}
+% \begin{macro}{\bbl@frenchguillemets}
+% \begin{macro}{\bbl@nonfrenchguillemets}
+% \begin{macrocode}
+ \def\CyrillicGuillemets{\FrenchGuillemetsFrom{OT2}{wncyr}{60}{62}}
+ \def\PolishGuillemets{\FrenchGuillemetsFrom{T1}{lmr}{19}{20}}
+ \def\LasyGuillemets{%
+ \DeclareTextCommand{\guillemotleft}{OT1}{\hbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}}%
+ \DeclareTextCommand{\guillemotright}{OT1}{\hbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}}
+ \IfFileExists{t1lmr.fd}{\PolishGuillemets}{\LasyGuillemets}
+ \DeclareTextSymbolDefault{\guillemotleft}{OT1}
+ \DeclareTextSymbolDefault{\guillemotright}{OT1}
+ \def\guill@spacing{\penalty\@M\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.8\fontdimen4\font}
+ \DeclareRobustCommand*{\begin@guill}{\leavevmode
+ \guillemotleft\penalty\@M\guill@spacing}
+ \DeclareRobustCommand*{\end@guill}{\ifdim\lastskip>\z@\unskip\fi
+ \penalty\@M\guill@spacing\guillemotright\xspace}
+ \AtBeginDocument{\ifx\xspace\@undefined\let\xspace\relax\fi}
+ \def\bbl@frenchguillemets{\renewcommand{\og}{\begin@guill}%
+ \renewcommand{\fg}{\end@guill}}
+ \def\bbl@nonfrenchguillemets{\renewcommand{\og}{``}%
+ \renewcommand{\fg}{\ifdim\lastskip>\z@\unskip\fi ''}}
+% \end{macrocode}
+% For \emph{Plain}\TeX, and \LaTeX-2.09 we define |\begin@guill|
+% and |\end@guill| using math symbols |\ll| and |\gg|.
+% \begin{macrocode}
+\else
+ \def\begin@guill{\leavevmode\raise0.25ex
+ \hbox{$\scriptscriptstyle\ll$}%
+ \penalty\@M\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font
+ minus.3\fontdimen4\font}
+ \def\end@guill{\ifdim\lastskip>\z@\unskip\penalty\@M\fi
+ \penalty\@M\hskip.8\fontdimen2\font
+ plus.3\fontdimen3\font minus.3\fontdimen4\font
+ \raise0.25ex\hbox{$\scriptscriptstyle\gg$}}
+ \let\xspace\relax
+ \def\bbl@frenchguillemets{\let\og\begin@guill
+ \let\fg\end@guill}
+ \def\bbl@nonfrenchguillemets{\def\og{``}%
+ \def\fg{\ifdim\lastskip>\z@\unskip\fi ''}}
+\fi
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchguillemets}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchguillemets}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{French lists}
+% \label{sec-lists}
+%
+% \begin{macro}{\bbl@frenchlistspacing}
+% \begin{macro}{\bbl@nonfrenchlistspacing}
+% Vertical spacing in general lists should be shorter in French
+% texts than the defaults provided by \LaTeX.
+% Note that the easy way, just changing values of vertical spacing
+% parameters when entering French and restoring them to their
+% defaults on exit would not work; as most lists are based on
+% |\list| we will redefine |\list| (up to version~1.4, the more
+% internal command |\@trivlist| was redefined, this ensured that
+% all lists would have common settings, but didn't allow the users
+% to provide their own settings, as pointed out by P.~Pichaureau).
+% If standard LaTeX{} settings are preferred, it is easy to issue
+% the command |\FrenchListSpacingfalse| in the preamble or in
+% |frenchb.cfg|. Please note that changing the flag
+% |\FrenchListSpacing| will \emph{not} take effect immediately,
+% but next time language French is switched on.
+%
+% The amount of vertical space before and after a list is given by
+% |\topsep| + |\parskip| (+ |\partopsep| if the list starts a new
+% paragraph). IMHO, |\parskip| should be added \emph{only} when
+% the list starts a new paragraph, so I subtract |\parskip| from
+% |\topsep| and add it back to |\partopsep|; this will normally
+% make no difference because |\parskip|'s default value is 0pt, but
+% will be noticeable when |\parskip| is \emph{not} null.\\
+% Of course, this code is only for \LaTeX.
+%
+% \changes{frenchb-1.3}{1997/05/30}{Add a switch to allow \cs{LaTeXe}
+% standard settings.}
+%
+% \changes{frenchb-1.5a}{2001/01/02}{Redefine \cs{list} instead of
+% \cs{@trivlist} to provide more freedom to the user, but still
+% allow the former way with \cs{ifFrenchOldTrivlist}.}
+%
+% \changes{frenchb-1.5g}{2001/09/09}{\cs{parskip} is of type `skip',
+% its mean value only (not the glue) should be moved from
+% \cs{topsep} to \cs{partopsep}: substracting glue can lead to
+% weird results. Bug pointed out by Michel Bovani.}
+%
+% \begin{macrocode}
+\newif\ifFrenchListSpacing \FrenchListSpacingtrue
+\newif\ifFrenchOldTrivlist
+\ifLaTeX
+ \let\listORI\list
+% \end{macrocode}
+% |\endlist| is not redefined, but |\endlistORI| is provided for
+% the users who prefer to define their own lists from the original
+% command, they can code: |\begin{listORI}{}{} \end{listORI}|.
+% \begin{macrocode}
+ \let\endlistORI\endlist
+ \def\FR@listsettings{%
+ \setlength{\itemsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \setlength{\parsep}{0.4ex plus 0.2ex minus 0.2ex}%
+ \setlength{\topsep}{0.8ex plus 0.4ex minus 0.4ex}%
+ \setlength{\partopsep}{0.4ex plus 0.2ex minus 0.2ex}%
+% \end{macrocode}
+% |\parskip| is of type `skip', its mean value only (\emph{not
+% the glue}) should be substracted from |\topsep| and added to
+% |\partopsep|, so convert |\parskip| to a `dimen' using
+% |\@tempdima|.
+% \begin{macrocode}
+ \@tempdima=\parskip
+ \addtolength{\topsep}{-\@tempdima}%
+ \addtolength{\partopsep}{\@tempdima}}%
+ \def\listFR#1#2{\listORI{#1}{\FR@listsettings #2}}%
+% \end{macrocode}
+% Keep the |\@trivlist| redefinition from version 1.4 (only
+% for compatibility reasons). The flag |\ifFrenchOldTrivlist|
+% could happen to be useful to process older documents.
+% \begin{macrocode}
+ \let\@trivlistORI\@trivlist
+ \def\@trivlistFR{\FR@listsettings\@trivlistORI}
+ \def\bbl@frenchlistspacing{\ifFrenchListSpacing\let\list\listFR\fi
+ \ifFrenchOldTrivlist\let\@trivlist\@trivlistFR
+ \let\list\listORI\fi}
+ \def\bbl@nonfrenchlistspacing{\let\list\listORI
+ \let\@trivlist\@trivlistORI}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchlistspacing}
+ \expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchlistspacing}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bbl@frenchitemize}
+% \begin{macro}{\bbl@nonfrenchitemize}
+% The layout of French itemize-lists has changed between version~1.2
+% and~1.3. Jacques Andr\'e and Thierry Bouche pointed out to me
+% that vertical spacing between items, before and after the list,
+% should \emph{null} with \emph{no glue} added. Moreover
+% horizontal spacing was not correct either: the item labels of a
+% first level list should be vertically aligned on the paragraph's
+% first character (at |\parindent| from the left margin).
+% Checking the book ``Lexique des r\`egles typographiques en usage
+% \`a l'Imprimerie nationale'' confirmed their points, so the itemize
+% environment has been totally redefined for French in version~1.3.
+%
+% Several people pointed out to me that the layout of lists can
+% either be set by the current language or be tuned independently of
+% the language as part of the layout of the document. So hooks should
+% be provided to switch off the special settings made in |frenchb|.
+% Setting |\FrenchItemizeSpacingfalse| \emph{after} loading |frenchb|
+% in the preamble switches back to settings of version~1.2 (this can
+% be useful to process old documents). If you want all list spacings
+% to be exactly what they are in standard \LaTeXe{}, then add also
+% |\FrenchListSpacingfalse| in the preamble \emph{after} loading
+% |frenchb|. Both switches can also be set in |frenchb.cfg|.
+% Please note that changing the flags |\FrenchItemizeSpacing| and
+% |\FrenchListSpacing| will \emph{not} take effect immediately,
+% but next time language French is switched on.
+%
+% The \textbullet{} is never used in French itemize-lists,
+% a long dash `--' is preferred for all levels. The item label used
+% in French is stored in |\FrenchLabelItem}|, it defaults to '--' and
+% can be changed using |\renewcommand| (see the example
+% configuration file above).
+%
+% \changes{frenchb-1.1}{1996/01/25}{Save original definitions of label
+% items, instead of hard coding them in \cs{bbl@nonfrenchitems}
+% (suggested by Vincent Jalby).}
+%
+% \changes{frenchb-1.1}{1996/01/26}{Tune vertical spacing in
+% French lists.}
+%
+% \changes{frenchb-1.3}{1997/05/30}{Change -{}- to \cs{textendash},
+% completely redesign the itemize environment in French and add
+% a hook to switch back to \cs{LaTeXe} standard itemize lists.}
+%
+% \changes{frenchb-1.4}{1999/07/08}{\cs{newif} only in LaTeX.}
+%
+% \changes{frenchb-1.4}{1999/07/08}{Add a hook \cs{FrenchLabelItem}
+% which defaults to \cs{textendash}, this was suggested by
+% Michel Bovani to allow some customization of label items.}
+%
+% \changes{frenchb-1.5a}{2001/01/02}{Redesign \cs{itemize} to allow
+% users to change the markers of any level in itemize lists.}
+%
+% \changes{frenchb-1.5g}{2001/09/09}{\cs{parskip} is of type `skip',
+% its mean value only (not the glue) should be moved from
+% \cs{topsep} to \cs{partopsep}: substracting glue can lead to
+% weird results. Bug pointed out by Michel Bovani.}
+%
+% \begin{macrocode}
+\newif\ifFrenchItemizeSpacing \FrenchItemizeSpacingtrue
+\ifLaTeX
+ \newcommand{\FrenchLabelItem}{\textendash}
+ \newcommand{\Frlabelitemi}{\FrenchLabelItem}
+ \newcommand{\Frlabelitemii}{\FrenchLabelItem}
+ \newcommand{\Frlabelitemiii}{\FrenchLabelItem}
+ \newcommand{\Frlabelitemiv}{\FrenchLabelItem}
+ \def\bbl@frenchitemize{%
+ \let\@ltiORI\labelitemi
+ \let\@ltiiORI\labelitemii
+ \let\@ltiiiORI\labelitemiii
+ \let\@ltivORI\labelitemiv
+ \let\itemizeORI\itemize
+ \let\labelitemi\Frlabelitemi
+ \let\labelitemii\Frlabelitemii
+ \let\labelitemiii\Frlabelitemiii
+ \let\labelitemiv\Frlabelitemiv
+ \ifFrenchItemizeSpacing
+% \end{macrocode}
+% Make sure |\itemize| uses |\@trivlistORI| even with
+% |\FrenchOldTrivlisttrue|.
+% \begin{macrocode}
+ \def\itemize{\let\@trivlist\@trivlistORI
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \listORI
+ \csname\@itemitem\endcsname
+ {\settowidth{\labelwidth}{\csname\@itemitem\endcsname}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \ifnum\@listdepth=0
+ \setlength{\itemindent}{\parindent}%
+ \else
+ \addtolength{\leftmargin}{\parindent}%
+ \fi
+ \setlength{\itemsep}{\z@}%
+ \setlength{\parsep}{\z@}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\partopsep}{\z@}%
+% \end{macrocode}
+% |\parskip| is of type `skip', its mean value only (\emph{not
+% the glue}) should be substracted from |\topsep| and added to
+% |\partopsep|, so convert |\parskip| to a `dimen' using
+% |\@tempdima|.
+% \begin{macrocode}
+ \@tempdima=\parskip
+ \addtolength{\topsep}{-\@tempdima}%
+ \addtolength{\partopsep}{\@tempdima}}%
+ \fi}%
+ \fi}
+% \end{macrocode}
+% The user's changes in labelitems are saved when leaving French
+% for further use when switching back to French.
+% \begin{macrocode}
+ \def\bbl@nonfrenchitemize{\let\Frlabelitemi\labelitemi
+ \let\Frlabelitemii\labelitemii
+ \let\Frlabelitemiii\labelitemiii
+ \let\Frlabelitemiv\labelitemiv
+ \let\labelitemi\@ltiORI
+ \let\labelitemii\@ltiiORI
+ \let\labelitemiii\@ltiiiORI
+ \let\labelitemiv\@ltivORI
+ \let\itemize\itemizeORI}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchitemize}
+ \expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchitemize}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{French indentation of sections}
+% \label{sec-indent}
+%
+% \begin{macro}{\bbl@frenchindent}
+% \begin{macro}{\bbl@nonfrenchindent}
+% In French the first paragraph of each section should be indented,
+% this is another difference with US-English.
+% Add this code only in \LaTeX.
+%
+% \changes{frenchb-1.2}{1996/12/27}{Corrected typo
+% \cs{bbl@nonfrenchident}.}
+%
+% \begin{macrocode}
+\ifLaTeX
+ \let\@aifORI\@afterindentfalse
+ \def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue
+ \@afterindenttrue}
+ \def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI
+ \@afterindentfalse}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchindent}
+ \expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchindent}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Formatting footnotes}
+%
+% \changes{frenchb-1.6a}{2003/02/02}{Add two hooks to customize
+% footnotes: \cs{AddThinSpaceBeforeFootnotes} and
+% \cs{FrenchFootnotes} (suggested by Jacques Andr\'e).}
+%
+% \begin{macro}{\AddThinSpaceBeforeFootnotes}
+% \begin{macro}{\FrenchFootnotes}
+% \begin{macro}{\StandardFootnotes}
+% |\AddThinSpaceBeforeFootnotes| redefines |\@footnotemark| (whose
+% definition is saved at the |\begin{document}| in order to include
+% any customization that packages might have done) to add a thinspace
+% before the number or symbol calling a footnote (any space typed
+% in is removed first). |\AddThinSpaceBeforeFootnotes| has no effect
+% on the layout of the footnote itself. Note that |\thanks| in
+% |\maketitle| also relies on |\@footnotemark|, so the thinspace
+% is added there too.
+%
+% \changes{frenchb-1.6f}{2003/04/02}{Move \cs{newif} and
+% \cs{newdimen} commands outside \cs{ifLaTeXe} ... \cs{fi}
+% for compatibility with the plain format.}
+%
+% \begin{macrocode}
+\newif\ifthinspace@FN
+\newif\ifFR@fntlayout
+\newdimen\parindentFFN
+\ifLaTeXe
+ \newcommand{\AddThinSpaceBeforeFootnotes}{\thinspace@FNtrue}
+ \AtBeginDocument{\let\@footnotemarkORI\@footnotemark
+ \def\@footnotemarkFR{\leavevmode\unskip\unkern
+ \,\@footnotemarkORI}%
+ \ifthinspace@FN
+ \let\@footnotemark\@footnotemarkFR
+ \fi}
+% \end{macrocode}
+%
+% We then define |\@makefntextFR|, a variant of |\@makefntext|
+% which is responsible for the layout of footnotes, to match the
+% specifications of the French `Imprimerie Nationale': Footnotes
+% will be indented by |\parindentFFN|, numbers (if any) typeset on
+% the baseline (instead of textsuperscripts) and followed by a dot
+% and an half quad space. Whenever symbols are used to number
+% footnotes (as in |\thanks| for instance), we switch back to the
+% standard layout (the French layout of footnotes is meant for
+% footnotes numbered by arabic or roman digits).
+% The value of |\parindentFFN| will be defined at the
+% |\begin{document}|, as the maximum of |\parindent| and 1.5em.
+%
+% \begin{macrocode}
+ \def\ftnISsymbol{\@fnsymbol\c@footnote}
+ \long\def\@makefntextFR#1{\ifx\thefootnote\ftnISsymbol
+ \@makefntextORI{#1}%
+ \else
+ \parindent=\parindentFFN
+ \rule\z@\footnotesep
+ \setbox\@tempboxa\hbox{\@thefnmark}%
+ \ifdim\wd\@tempboxa>\z@
+ \llap{\@thefnmark}.\kern.5em
+ \fi #1
+ \fi}%
+% \end{macrocode}
+% We now define two commands |\FrenchFootnotes| and
+% |\StandardFootnotes| which select French or Standard layout
+% for footnotes; we have to save the standard definition of
+% |\@makefntext| at the |\begin{document}|, and then redefine
+% |\@makefntext| according to the value of an internal flag set
+% by |\FrenchFootnotes| and reset by |\StandardFootnotes|.
+% \begin{macrocode}
+ \AtBeginDocument{\parindentFFN=\parindent
+ \ifdim\parindentFFN<1.5em\parindentFFN=1.5em\fi
+ \let\@makefntextORI\@makefntext
+ \long\def\@makefntext#1{%
+ \ifFR@fntlayout
+ \@makefntextFR{#1}%
+ \else
+ \@makefntextORI{#1}%
+ \fi
+ }%
+ }
+ \newcommand{\FrenchFootnotes}{\FR@fntlayouttrue}
+ \newcommand{\StandardFootnotes}{\FR@fntlayoutfalse}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Formatting numbers}
+% \label{sec-numbers}
+%
+% \changes{frenchb-1.4}{1999/10/02}{Add a hook to let the comma
+% be in math mode of type \cs{mathord} in French, as a decimal
+% separator should be.}
+%
+% \changes{frenchb-1.6e}{2003/11/09}{The change from \cs{mathpunct}
+% to \cs{mathord} should be encoding independent (suggested by
+% Michel Bovani): just strip the highest hexadecimal digit to
+% switch from type \cs{mathpunct} to type \cs{mathord}.}
+%
+% \begin{macro}{\DecimalMathComma}
+% \begin{macro}{\StandardMathComma}
+% As mentioned in the \TeX{}book p.~134, the comma is of type
+% |\mathpunct| in math mode: it is automatically followed by a
+% space. This is convenient in lists and intervals but
+% unpleasant when the comma is used as a decimal separator
+% in French: it has to be entered as |{,}|.
+% |\DecimalMathComma| makes the comma be an ordinary character
+% (of type |\mathord|) in French \emph{only} (no space added);
+% |\StandardMathComma| switches back to the standard behaviour
+% of the comma.
+% \begin{macrocode}
+\newcount\std@mcc
+\newcount\dec@mcc
+\std@mcc=\mathcode`\,
+\dec@mcc=\std@mcc
+\@tempcnta=\std@mcc
+\divide\@tempcnta by "1000
+\multiply\@tempcnta by "1000
+\advance\dec@mcc by -\@tempcnta
+\newcommand{\DecimalMathComma}{\iflanguage{french}%
+ {\mathcode`\,=\dec@mcc}{}%
+ \addto\extrasfrench{\mathcode`\,=\dec@mcc}}
+\newcommand{\StandardMathComma}{\mathcode`\,=\std@mcc
+ \addto\extrasfrench{\mathcode`\,=\std@mcc}}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \mathcode`\,=\std@mcc}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{frenchb-1.2}{1996/12/27}{New macros \cs{nombre}
+% \cs{decimalsep} and \cs{thousandsep} added to format numbers.}
+%
+% In English the decimal part starts with a point and thousands
+% should be separated by a comma: an approximation of $1000\pi$
+% should be inputed as |$3{,}141.592{,}653$| in math mode and
+% as |3,141.592,653| in text.\\
+% In French the decimal part starts with a comma and thousands
+% should be separated by a space; the same approximation of
+% $1000\pi$ should be inputed as |$3\;141{,}592\;653$| in math mode
+% and as something like |3~141,592~653| in text: in math mode, the
+% comma is of type |\mathpunct| (thus normally followed by a space)
+% while the point is of type |\mathord| (no space added).
+%
+% Thierry Bouche suggested that a second type of comma, of type
+% |\mathord| would be useful in math mode, and proposed to
+% introduce a command (named |\decimalsep| in this package),
+% the expansion of which would depend on the current language.
+%
+% Vincent Jalby suggested a command |\nombre| to conveniently
+% typeset numbers: inputting |\nombre{3141,592653}| either in
+% text or in math mode will format this number properly according
+% to the current language (French or non-French).
+%
+% |\nombre| accepts an optional argument which happens to be
+% useful with the package `dcolumn', it specifies the decimal
+% separator used in the \emph{source code}:
+% |\newcolumntype{d}{D{,}{\decimalsep}{-1}}| \\
+% |\begin{tabular}{|d|}\hline | \\
+% | 3,14 \\ | \\
+% | \nombre[,]{123,4567} \\ | \\
+% | \nombre[,]{9876,543}\\\hline| \\
+% |\end{tabular} | \\
+% will print a column of numbers aligned on the decimal point
+% (comma or point depending on the current language), each slice
+% of 3 digits being separated by a space or a comma according to
+% the current language.
+%
+% \begin{macro}{\decimalsep}
+% \begin{macro}{\thousandsep}
+% We need a internal definition, valid in both text and math mode,
+% for the comma (|\@comma@|) and another one for the unbreakable
+% fixed length space (no glue) used in French (|\f@thousandsep|).
+%
+% The commands |\decimalsep| and |\thousandsep| get default
+% definitions (for the English language) when |frenchb| is loaded;
+% these definitions will be updated when the current language is
+% switched to or from French.
+%
+% \changes{frenchb-1.2b}{1997/04/24}{Extra care taken to handle
+% signs properly inside \cs{nombre} in \LaTeXe.}
+%
+% \changes{frenchb-1.2b}{1997/04/24}{Definition of \cs{nombre} changed
+% to correct a bug with moving arguments in \LaTeX-2.09.}
+%
+% \changes{frenchb-1.4g}{2000/10/07}{Added a new hook
+% \cs{ThinSpaceInFrenchNumbers} to have thin spaces instead of
+% normal spaces (the default) when formatting French numbers.}
+%
+% \begin{macrocode}
+\mathchardef\m@comma=\dec@mcc
+\def\@comma@{\ifmmode\m@comma\else,\fi}
+\def\f@thousandsep{\ifmmode\mskip5.5mu\else\penalty\@M\kern.3em\fi}
+\def\ThinSpaceInFrenchNumbers{\def\f@thousandsep{%
+ \ifmmode\mskip3mu\else\penalty\@M\kern.16667em\fi}}
+\newcommand{\decimalsep}{.}
+\newcommand{\thousandsep}{\@comma@}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \def\decimalsep{\@comma@}%
+ \def\thousandsep{\f@thousandsep}}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \def\decimalsep{.}%
+ \def\thousandsep{\@comma@}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{frenchb-1.3}{1997/05/24}{Avoid mixing text and math mode
+% whenever possible: check if \cs{textminus} and co. are available.}
+% Signs can now be entered inside |\nombre|. When |\nombre| is
+% used in text-mode, signs should be text symbols to get the
+% series, shape... from the current text-font. When signs are not
+% available in text-mode, we provide some defaults.
+%
+% \begin{macrocode}
+\providecommand{\textminus}{\textendash}
+\providecommand{\textplusminus}{\ensuremath{\pm}}
+\providecommand{\textminusplus}{\ensuremath{\mp}}
+\def\fb@minus{\ifmmode-\else\textminus\fi}
+\def\fb@plusminus{\ifmmode\pm\else\textplusminus\fi}
+\def\fb@minusplus{\ifmmode\mp\else\textminusplus\fi}
+% \end{macrocode}
+%
+% \begin{macro}{\nombre}
+% The decimal separator used when \emph{inputing} a number
+% with |\nombre| \emph{has to be a comma}.
+% |\nombre| splits the inputed number into two parts: what
+% comes before the first comma will be formatted by
+% \cs{@integerpart} while the rest (if not empty) will be
+% formatted by \cs{@decimalpart}. Both parts, once formatted
+% separately will be merged together with between them, either
+% the decimal separator \cs{decimalsep} or (in \LaTeXe{}
+% \emph{only}) the optional argument of |\nombre|.
+%
+% \changes{frenchb-1.3}{1997/05/24}{Added \cs{@empty} to the
+% definitions of \cs{nb@first} and \cs{nb@suite}, as suggested
+% by V. Jalby, to cope with possibly empty integer part as in
+% \cs{nombre{,123}}.}
+%
+% \begin{macrocode}
+\if@Two@E
+ \newcommand{\nombre}[2][\decimalsep]{\def\@decimalsep{#1}%
+ \@@nombre#2\@empty,\@empty,\@nil}
+\else
+ \def\@decimalsep{\decimalsep}
+ \newcommand{\nombre}[1]{\@nombre#1\@empty,\@empty,\@nil}
+\fi
+\def\@firstofmany#1#2,{#1}
+\def\@@nombre#1,#2,#3\@nil{%
+ \def\nb@sign{}%
+ \edef\nb@first{\@firstofmany #1\@empty,}%
+ \edef\nb@suite{\@secondoftwo #1\@empty,}%
+ \if+\nb@first \def\nb@sign{+}\fi
+ \if-\nb@first \def\nb@sign{\fb@minus}\fi
+ \expandafter\ifx\nb@first\pm \def\nb@sign{\fb@plusminus}\fi
+ \expandafter\ifx\nb@first\mp \def\nb@sign{\fb@minusplus}\fi
+ \ifx\@empty\nb@sign
+ \let\@tmp\nb@suite\edef\nb@suite{\nb@first\@tmp}%
+ \fi
+ \nb@sign\expandafter\@nombre\nb@suite#2,#3\@nil}
+\def\@nombre#1,#2,#3\@nil{%
+ \ifx\@empty#2%
+ \@integerpart{#1}%
+ \else
+ \@integerpart{#1}\@decimalsep\@decimalpart{#2}%
+ \fi}
+% \end{macrocode}
+% The easiest bit is the decimal part:
+% We attempt to read the first four digits of the decimal part, if
+% it has less than 4 digits, we just have to print them, otherwise
+% |\thousandsep| has to be appended after the third digit, and the
+% algorithm is applied recursively to the rest of the decimal part.
+% \begin{macrocode}
+\def\@decimalpart#1{\@@decimalpart#1\@empty\@empty\@empty}
+\def\@@decimalpart#1#2#3#4{#1#2#3%
+ \ifx\@empty#4%
+ \else
+ \thousandsep\expandafter\@@decimalpart\expandafter#4%
+ \fi}
+% \end{macrocode}
+% Formatting the integer part is more difficult because the slices
+% of 3 digits start from the \emph{bottom} while the number is
+% read from the top!
+% This (tricky) code is borrowed from David Carlisle's comma.sty.
+% \begin{macrocode}
+\def\@integerpart#1{\@@integerpart{}#1\@empty\@empty\@empty}
+\def\@@integerpart#1#2#3#4{%
+ \ifx\@empty#2%
+ \@addthousandsep#1\relax
+ \else
+ \ifx\@empty#3%
+ \@addthousandsep\@empty\@empty#1#2\relax
+ \else
+ \ifx\@empty#4%
+ \@addthousandsep\@empty#1#2#3\relax
+ \else
+ \@@integerpartafterfi{#1#2#3#4}%
+ \fi
+ \fi
+ \fi}
+\def\@@integerpartafterfi#1\fi\fi\fi{\fi\fi\fi\@@integerpart{#1}}
+\def\@addthousandsep#1#2#3#4{#1#2#3%
+ \if#4\relax
+ \else
+ \thousandsep\expandafter\@addthousandsep\expandafter#4%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Dots\dots}
+% \label{sec-dots}
+%
+% \changes{frenchb-1.3}{1997/06/03}{Added this section.}
+% \LaTeXe's standard definition of |\dots| in text-mode is
+% |\textellipsis| which includes a |\kern| at the end;
+% this space is not wanted in some cases (before a closing brace
+% for instance) and |\kern| breaks hyphenation of the next word.
+% We define |\Frtextellipsis| for French (in \LaTeXe{} only).
+%
+% \changes{frenchb-1.4c}{1999/11/17}{Bug correction: \cs{xspace}
+% didn't work in \cs{dots} without amsmath.sty.}
+% The |\if| construction in the \LaTeXe{} definition of |\dots|
+% doesn't allow the use of |xspace| (|xspace| is always followed
+% by a |\fi|), so we use the AMS-\LaTeX{} construction of |\dots|;
+% this has to be done `AtBeginDocument' not to be overwritten
+% when \file{amsmath.sty} is loaded after \babel.
+%
+% \changes{frenchb-1.4d}{2000/02/01}{AMS-LaTeX 2.0 provides a much
+% better spacing for \cs{dots} than 1.2, so let's take advantage
+% of it when amsmath (up to 1.2 or newer) is loaded.}
+%
+% \begin{macro}{\Frtextellipsis}
+% \begin{macrocode}
+\ifLaTeXe
+ \DeclareTextCommandDefault{\Frtextellipsis}{%
+ .\kern\fontdimen3\font.\kern\fontdimen3\font.\xspace}
+% \end{macrocode}
+% |\Mdots@| and |\Tdots@ORI| hold the definitions of |\dots| in
+% Math and Text mode. They default to those of amsmath-2.0, and
+% will revert to standard \LaTeX{} definitions `AtBeginDocument',
+% if amsmath has not been loaded. |\Mdots@| doesn't change when
+% switching from/to French, while |\Tdots@| is |\Frtextellipsis|
+% in French and |\Tdots@ORI| otherwise.
+% \begin{macrocode}
+ \newcommand{\Tdots@ORI}{\@xp\textellipsis}
+ \newcommand{\Tdots@}{\Tdots@ORI}
+ \newcommand{\Mdots@}{\@xp\mdots@}
+ \AtBeginDocument{\DeclareRobustCommand{\dots}{\relax
+ \csname\ifmmode M\else T\fi dots@\endcsname}%
+ \ifx\@xp\@undefined\let\@xp\relax\fi
+ \ifx\mdots@\@undefined\let\Tdots@ORI\textellipsis
+ \let\Mdots@\mathellipsis\fi}
+ \def\bbl@frenchdots{\let\Tdots@\Frtextellipsis}
+ \def\bbl@nonfrenchdots{\let\Tdots@\Tdots@ORI}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchdots}
+ \expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchdots}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Global layout}
+% \label{sec-global}
+%
+% \changes{frenchb-1.4}{1999/10/03}{Added this section.}
+%
+% In multilingual documents, some typographic rules must depend
+% on the current language (e.g., hyphenation, typesetting of
+% numbers, spacing before double punctuation\dots),
+% others should, IMHO, be kept global to the document:
+% especially the layout of lists (see~\ref{sec-lists})
+% and the indentation of the first paragraph of sections
+% (see~\ref{sec-indent}).
+%
+% \begin{macro}{\FrenchLayout}
+% \begin{macro}{\StandardLayout}
+% In a multilingual document, a unified look, either the French
+% one or the standard one, can be assigned to the whole document:
+% adding |\FrenchLayout| will give a global ``French look'' to
+% the document (e.g., lists, regardless the current language, will
+% be typeset as in French) and |\StandardLayout| forces a global
+% ``US-English'' look.
+% Both of these commands can only be used \emph{before} the
+% |\begin{document}|.
+% |\StandardLayout| can also be of interest for class designers
+% who do not want |frenchb| to interfere with their global layout
+% choices.
+%
+% As of version~1.4, |\FrenchLayout| and |\StandardLayout| only
+% affect:
+% \begin{itemize}
+% \item the layout of lists (see~\ref{sec-lists}),
+% \item the indentation of the first paragraph of sections
+% (see~\ref{sec-indent}).
+% \end{itemize}
+%
+% \changes{frenchb-1.6c}{2003/06/30}{Bug correction: the definitions
+% of \cs{labelitemi} ... \cs{itemize} need to be saved in
+% \cs{StandardLayout}.}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \newcommand{\FrenchLayout}{%
+ \renewcommand{\StandardLayout}{%
+ \PackageWarning{frenchb.ldf}%
+ {\protect\StandardLayout\space makes no change\MessageBreak
+ (\protect\FrenchLayout\space has been selected before
+ \MessageBreak for the whole document)}%
+ }%
+ \AtBeginDocument{\bbl@frenchitemize\bbl@frenchlistspacing
+ \bbl@frenchindent}%
+ \let\bbl@nonfrenchitemize\relax
+ \let\bbl@nonfrenchlistspacing\relax
+ \let\bbl@nonfrenchindent\relax}
+ \newcommand{\StandardLayout}{%
+ \renewcommand{\FrenchLayout}{%
+ \PackageWarning{frenchb.ldf}%
+ {\protect\FrenchLayout\space makes no change\MessageBreak
+ (\protect\StandardLayout\space has been selected before
+ \MessageBreak for the whole document)}%
+ }%
+ \let\@ltiORI\labelitemi
+ \let\@ltiiORI\labelitemii
+ \let\@ltiiiORI\labelitemiii
+ \let\@ltivORI\labelitemiv
+ \let\itemizeORI\itemize
+ \let\bbl@frenchitemize\relax
+ \let\bbl@frenchlistspacing\relax
+ \let\bbl@frenchindent\relax}
+ \@onlypreamble\FrenchLayout
+ \@onlypreamble\StandardLayout
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Extra utilities}
+%
+% All that is left to do now is to provide the French user
+% with some extra utilities.
+%
+% \begin{macro}{\up}
+% \begin{macro}{\ieme}
+% |\up| eases the typesetting of superscripts like
+% `1\raise0.55ex\hbox{\small er}'. |\up| relies on
+% |\textsuperscript| when available (i.\,e., in \LaTeXe).
+%
+% \changes{frenchb-1.1}{1996/01/20}{Use \cs{textsuperscript} in \LaTeXe,
+% as suggested by Vincent Jalby.}
+%
+% \changes{frenchb-1.1}{1996/01/26}{Internal macro \cs{up@size}
+% introduced by Johannes Braams to replace \cs{small},
+% too fragile in 2.09).}
+%
+% \changes{frenchb-1.1}{1996/05/03}{\cs{@ptsize} may not be undefined,
+% i.\,e. in slides.cls.}
+%
+% \begin{macro}{\up@size}
+% The internal macro |\up@size| holds the size at which the
+% superscript will be typeset. The reason for this is that we have
+% to specify it differently for different formats.
+% \begin{macrocode}
+\ifx\sevenrm\@undefined
+ \ifx\@ptsize\@undefined
+ \let\up@size\small
+ \else
+ \ifx\selectfont\@undefined
+% \end{macrocode}
+% In this case the format is the original \LaTeX-2.09:
+% \begin{macrocode}
+ \ifcase\@ptsize
+ \let\up@size\ixpt\or
+ \let\up@size\xpt\or
+ \let\up@size\xipt
+ \fi
+% \end{macrocode}
+% When |\selectfont| is defined we probably have NFSS available:
+% \begin{macrocode}
+ \else
+ \ifcase\@ptsize
+ \def\up@size{\fontsize\@ixpt{10pt}\selectfont}\or
+ \def\up@size{\fontsize\@xpt{11pt}\selectfont}\or
+ \def\up@size{\fontsize\@xipt{12pt}\selectfont}
+ \fi
+ \fi
+ \fi
+\else
+% \end{macrocode}
+% If we end up here it must be a plain based \TeX{} format, so:
+% \begin{macrocode}
+ \let\up@size\sevenrm
+\fi
+% \end{macrocode}
+% \end{macro}
+% Now we can define |\up|. When \LaTeXe{} runs in
+% compatibility mode (\LaTeX-2.09 emulation), |\textsuperscript| is
+% also defined, but does no good job, so we give two different
+% definitions for |\up| using |\if@Two@E|.
+% \begin{macrocode}
+\if@Two@E
+ \DeclareRobustCommand*{\up}[1]{\textsuperscript{#1}}
+\else
+ \DeclareRobustCommand*{\up}[1]{\leavevmode\raise1ex\hbox{\up@size#1}}
+\fi
+% \end{macrocode}
+%
+% \changes{frenchb-1.1}{1996/05/31}{Added 5 macros from french.sty and
+% missing \cs{lowercase}.}
+%
+% \changes{frenchb-1.2b}{1997/04/24}{Use \cs{xspace} to control spacing
+% after \cs{ieme} ... \cs{ieres}.}
+%
+% |\ieme| is provided for compatibility with |francais.sty|,
+% the other 5 for compatibility with |french.sty|:
+% \begin{macrocode}
+\def\ieme{\up{\lowercase{e}}\xspace}
+\def\iemes{\up{\lowercase{es}}\xspace}
+\def\ier{\up{\lowercase{er}}\xspace}
+\def\iers{\up{\lowercase{ers}}\xspace}
+\def\iere{\up{\lowercase{re}}\xspace}
+\def\ieres{\up{\lowercase{res}}\xspace}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\No}
+% \begin{macro}{\no}
+% \begin{macro}{\primo}
+% \begin{macro}{\fprimo)}
+% And some more macros for numbering, first two support macros.
+%
+% \changes{frenchb-1.1}{1996/01/25}{Avoid using math superscripts
+% in text mode (suggested by V.~Jalby), use \cs{up} instead.
+% The symbol `degree' has nothing to do in
+% \cs{FrenchPopularEnumerate}, replace it by a small `o'.}
+%
+% \begin{macrocode}
+\DeclareRobustCommand*{\FrenchEnumerate}[1]{%
+ #1\up{\lowercase{o}}\kern+.3em}
+\DeclareRobustCommand*{\FrenchPopularEnumerate}[1]{%
+ #1\up{\lowercase{o}})\kern+.3em}
+% \end{macrocode}
+%
+% \changes{frenchb-1.3c}{1997/10/08}{Typos corrected: quatro, fquatro}
+%
+% Typing |\primo| should result in `$1^{\rm o}$\kern+.3em',
+% \begin{macrocode}
+\def\primo{\FrenchEnumerate1}
+\def\secundo{\FrenchEnumerate2}
+\def\tertio{\FrenchEnumerate3}
+\def\quarto{\FrenchEnumerate4}
+% \end{macrocode}
+% while typing |\fprimo)| gives `1$^{\rm o}$)\kern+.3em.
+% \begin{macrocode}
+\def\fprimo){\FrenchPopularEnumerate1}
+\def\fsecundo){\FrenchPopularEnumerate2}
+\def\ftertio){\FrenchPopularEnumerate3}
+\def\fquarto){\FrenchPopularEnumerate4}
+% \end{macrocode}
+%
+% Let's provide two macros for the common abbreviations
+% of ``Num\'ero''.
+% \begin{macrocode}
+\DeclareRobustCommand*{\No}{N\up{\lowercase{o}}\kern+.2em}
+\DeclareRobustCommand*{\no}{n\up{\lowercase{o}}\kern+.2em}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{frenchb-1.1}{1996/01/29}{Added command \cs{bsc}.}
+%
+% \changes{frenchb-1.1}{1996/05/31}{Added \cs{leavevmode} in \cs{bsc}}
+%
+% \begin{macro}{\bsc}
+% As family names should be written in small capitals and never be
+% hyphenated, we provide a command (its name comes from Boxed Small
+% Caps) to input them easily; this is a simpler implementation of
+% commands |\fsc| and |\lsc| from |french.sty| : no automatic
+% uppercase/lowercase conversion is performed.
+% Usage: |Jean~\bsc{Duchemin}|.
+% \begin{macrocode}
+\DeclareRobustCommand*{\bsc}[1]{\leavevmode\hbox{\scshape #1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{frenchb-1.1}{1996/05/31}{Added \cs{AllTeX}.}
+%
+% \changes{frenchb-1.2}{1997/01/08}{Removed \cs{AllTeX}.}
+%
+% \changes{frenchb-1.1}{1996/02/12}{Added T1-encodings for \oe, \OE,
+% \ae, \AE. \emph{Do not} re-define these symbols outside \LaTeXe.}
+%
+% \changes{frenchb-1.1}{1996/02/14}{Corrected definitions of
+% \cs{boi}.}
+%
+% \changes{frenchb-1.3}{1997/05/24}{Use \cs{textbackslash} to define
+% \cs{boi}.}
+%
+% Some definitions for special characters. The first eight are
+% mandatory for |\oe| etc. to work properly in moving arguments,
+% the others just for convenience. We won't define |\tilde| as a
+% Text Symbol not to conflict with the macro |\tilde| for math mode
+% and use the name |\tild| instead. Note that |\boi| may \emph{not}
+% be used in math mode, its name in math mode is |\backslash|.
+%
+% \changes{frenchb-1.3}{1997/05/24}{Use \cs{r{}} to access the
+% character `degree', as suggested by V. Jalby.}
+%
+% |\degre| needs a special treatment: it is |\char6|
+% in T1-encoding and |\char23| in OT1-encoding, both can be
+% accessed by the command |\r{}| for ring accent.
+%
+% \changes{frenchb-1.1}{1996/03/03}{Do not use commands related to
+% encodings outside \LaTeXe.}
+%
+% \changes{frenchb-1.4}{1999/10/03}{Add definitions for \cs{at},
+% \cs{circonflexe} and \cs{tild} in other encodings (mlTeX's LO1).}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \DeclareTextSymbol{\ae}{T1}{230}
+ \DeclareTextSymbol{\ae}{OT1}{26}
+ \DeclareTextSymbol{\oe}{T1}{247}
+ \DeclareTextSymbol{\oe}{OT1}{27}
+ \DeclareTextSymbol{\AE}{T1}{198}
+ \DeclareTextSymbol{\AE}{OT1}{29}
+ \DeclareTextSymbol{\OE}{T1}{215}
+ \DeclareTextSymbol{\OE}{OT1}{30}
+ \DeclareTextSymbol{\at}{T1}{64}
+ \DeclareTextSymbol{\at}{OT1}{64}
+ \DeclareTextSymbol{\circonflexe}{T1}{94}
+ \DeclareTextSymbol{\circonflexe}{OT1}{94}
+ \DeclareTextSymbol{\tild}{T1}{126}
+ \DeclareTextSymbol{\tild}{OT1}{126}
+ \DeclareTextSymbolDefault{\at}{OT1}
+ \DeclareTextSymbolDefault{\circonflexe}{OT1}
+ \DeclareTextSymbolDefault{\tild}{OT1}
+ \DeclareRobustCommand*{\boi}{\textbackslash}
+ \DeclareRobustCommand*{\degre}{\r{}}
+\else
+ \def\T@one{T1}
+ \ifx\f@encoding\T@one
+ \newcommand{\degre}{\char6}
+ \else
+ \newcommand{\degre}{\char23}
+ \fi
+ \newcommand{\at}{\char64}
+ \newcommand{\circonflexe}{\char94}
+ \newcommand{\tild}{\char126}
+ \newcommand{\boi}{{$\backslash$}}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\degres}
+% We now define a macro |\degres| for typesetting the abbreviation
+% for `degrees' (as in `degrees Celsius'). As the bounding box of
+% the character `degree' has \emph{very} different widths in CM/EC
+% and PostScript fonts, we fix the width of the bounding box of
+% |\degres| to 0.3\,em, this lets the symbol `degree' stick to the
+% preceding (e.g., |45\degres|) or following character
+% (e.g., |20~\degres C|).
+%
+% If the \TeX{} Companion fonts are available (\file{textcomp.sty}),
+% we pick up |\textdegree| from them instead of using emulating
+% `degrees' from the |\r{}| accent. Otherwise we overwrite the
+% (poor) definition of |\textdegree| given in \file{latin1.def},
+% \file{applemac.def} etc. (called by \file{inputenc.sty}) by
+% our definition of |\degres|. We also advice the user (once only)
+% to use TS1-encoding.
+%
+% \changes{frenchb-1.1}{1996/01/25}{Fixed width bounding box for
+% correct spacing with both CM, EC and PostScript fonts}
+%
+% \changes{frenchb-1.1}{1996/05/31}{Added \cs{leavevmode} in the
+% \cs{degres}'s definition}
+%
+% \changes{frenchb-1.6a}{2003/02/02}{Replace \cs{degres} by
+% \cs{textdegree} from textcomp.sty when possible (suggested
+% by Michel Bovani).}
+%
+% \changes{frenchb-1.6g}{2005/02/06}{Add \cs{hbox} in the definition
+% of \cs{degres} when textcomp.sty is loaded, so that \cs{degres}
+% can be used in math mode.}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \def\Warning@degree@TSone{%
+ \PackageWarning{frenchb.ldf}{%
+ Degrees would look better in TS1-encoding:
+ \MessageBreak add \protect
+ \usepackage{textcomp} to the preamble.
+ \MessageBreak Degrees used}}
+ \AtBeginDocument{\expandafter\ifx\csname M@TS1\endcsname\relax
+ \DeclareRobustCommand*{\degres}{%
+ \leavevmode\hbox to 0.3em{\hss\degre\hss}%
+ \Warning@degree@TSone
+ \global\let\Warning@degree@TSone\relax}%
+ \let\textdegree\degres
+ \else
+ \DeclareRobustCommand*{\degres}{%
+ \hbox{\UseTextSymbol{TS1}{\textdegree}}}%
+ \fi}
+\else
+ \DeclareRobustCommand*{\degres}{%
+ \leavevmode\hbox to 0.3em{\hss\degre\hss}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{frenchb-1.1}{1996/01/16}{Special care has to be taken
+% with Ml\TeX.}
+%
+% The following macros are used in the redefinition of |\^| and
+% |\"| to handle the letter~i: they allow users to type simply
+% |\^i| and |\"i| instead of |\^{\i}| and |\"{\i}|.\\
+% Ml\TeX{}'s macros dealing with accents conflict with those of
+% \LaTeXe{}, so we check whether |\csubinverse| is defined or not.
+% If |\csubinverse| is \emph{defined}, we are in Ml\TeX.
+%
+% \changes{frenchb-1.1}{1996/03/02}{Do this only in \LaTeXe.}
+%
+% \changes{frenchb-1.1}{1996/03/12}{Do not redefine \cs{\char94} and
+% \cs{"} in Ml\TeX, because it would break hyphenation. The correct
+% place to redefine \cs{\char94i} and \cs{"i} is in the format
+% itself, see MLTeX.cfg.}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \AtBeginDocument{%
+ \ifx\csubinverse\@undefined
+ \DeclareTextCompositeCommand{\^}{OT1}{i}{\^\i}%
+ \DeclareTextCompositeCommand{\"}{OT1}{i}{\"\i}%
+ \fi}
+\fi
+% \end{macrocode}
+%
+% \subsection{Date and clean up}
+%
+% \begin{macro}{\datefrench}
+% The macro |\datefrench| redefines the command |\today| to
+% produce French dates.
+%
+% \changes{frenchb-1.2}{1997/01/05}{Added aliases \cs{datefrenchb}
+% and \cs{datefrancais}. Use \cs{ier} instead of \cs{up}.}
+%
+% \changes{frenchb-1.3b}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+%
+% \changes{frenchb-1.3d}{1998/07/04}{Move this code to the end
+% of file, until \cs{ier} is defined (due to use of \cs{edef});
+% expansion of \cs{ier} has to be stopped anyway.}
+%
+% \changes{frenchb-1.3g}{1999/08/18}{Replaced \cs{edef} with \cs{def}
+% to prevent problems with unexpandable accent commands}
+%
+% \changes{frenchb-1.4d}{2000/02/01}{Changed \cs{noexpand}\cs{ier}
+% to \cs{ier}, as a result of the replacement of \cs{edef} by
+% \cs{def}, see previous change. Also add braces around \cs{ier}
+% for xspace.sty.}
+%
+% \begin{macrocode}
+\@namedef{date\CurrentOption}{%
+ \def\today{\number\day
+ \ifnum1=\day {\ier}\fi
+ \space \ifcase\month
+ \or janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or novembre\or
+ d\'ecembre\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@quit| takes care for setting the main language
+% to be switched on at |\begin{document}| and resetting the
+% category code of \texttt{@} to its original value.
+% The config file searched for has to be `frenchb.cfg', and
+% |\CurrentOption| has been set to `french', so
+% |\ldf@finish\CurrentOption| cannot be used: we first load
+% `frenchb.cfg' (in LaTeX2e only), then call
+% |\ldf@quit\CurrentOption|.
+% The macro-space used by some control sequences we do not
+% need any longer, is freed.
+%
+% \changes{frenchb-1.1b}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up.}
+%
+% \changes{frenchb-1.2}{1997/01/05}{The config file searched for is
+% `frenchb.cfg' regardless \cs{CurrentOption}.}
+%
+% \changes{frenchb-1.5d}{2001/02/16}{Load frenchb.cfg first and
+% change \cs{ldf@finish} to \cs{ldf@quit}.}
+%
+% \changes{frenchb-1.6g}{2005/02/06}{frenchb.cfg is now loaded only
+% with LaTeX2e, as the customization makes sense only in LaTeX2e.
+% Suggested by J.F. Burnol.}
+%
+% \begin{macrocode}
+\ifLaTeXe
+ \loadlocalcfg{frenchb}
+\fi
+\let\T@one\relax
+\let\@FI@\relax
+\let\ifLaTeX\@undefined
+\let\LaTeXtrue\@undefined
+\let\LaTeXfalse\@undefined
+\let\ifLaTeXe\@undefined
+\let\LaTeXetrue\@undefined
+\let\LaTeXefalse\@undefined
+\ldf@quit\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/frenchb.ins b/Master/texmf-dist/source/generic/babel/frenchb.ins
new file mode 100644
index 00000000000..8e5f7507769
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/frenchb.ins
@@ -0,0 +1,155 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/10/30}
+\def\batchfile{frenchb.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{frenchb.ldf}{\from{frenchb.dtx}{code}}
+ }
+\nopreamble
+\nopostamble
+\generate{\file{frenchb.cfg}{\from{frenchb.dtx}{cfg}}
+ }
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
+
+
+
+
diff --git a/Master/texmf-dist/source/generic/babel/galician.dtx b/Master/texmf-dist/source/generic/babel/galician.dtx
new file mode 100644
index 00000000000..89b8c59e296
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/galician.dtx
@@ -0,0 +1,476 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{263}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{galician.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{galician}
+%\fi
+%\ProvidesFile{galician.dtx}
+ [2005/03/30 v1.2l Galician support from the babel system]
+%\iffalse
+%% File `galician.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Galician Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Manuel Carriba mcarriba at eunetcom.net
+%% Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Galician language definition file.
+%
+% The 'galician' style was originally adopted from the 'spanish'
+% style.
+%
+% All the macrocodes have been translated from the spanish language
+% into the galician language, using the spanish-galician
+% dictionary:
+%
+% X.L. Franco Grande
+% Diccionario Galego-Castelan e Vocabulario Castelan-Galego
+% Editorial Galaixa, Vigo 1968
+%
+% The hyphenation patterns for the galician language should be the
+% same as the spanish language. I've inspected some galician essays
+% and nothing strange seems to point out that both languages might
+% use different hyphenation patterns. This still has to been
+% proved. I will check it anyway, and hope to report more as soon
+% as possible.
+%
+% A small note to the months in the galician language:
+%
+% 'outono' will be used sometimes instead of 'outubro', but this
+% word will be used more to assign the season.
+%
+% 'nadal' will be used sometimes instead of 'decembro', but this
+% word will be used more for the event on Christmas.
+%
+% Manuel Carriba (mcarriba at eunetcom.net)
+%
+% The file spanish.sty was written by Julio Sanchez,
+% (jsanchez at gmv.es)
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{galician.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{galician.dtx}
+%
+% \changes{galician-1.1}{1994/02/27}{Update for \LaTeXe}
+% \changes{galician-1.1c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{galician-1.2e}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Galician language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% Galician language.
+%
+% For this language the characters |'| |~| and |"| are made
+% active. In table~\ref{tab:galician-quote} an overview is given of
+% their purpose.
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word. \\
+% |'a| & an accent that allows hyphenation. Valid for all
+% vowels uppercase and lowercase.\\
+% |'n| & a n with a tilde. This is included to
+% improve compatibility with FTC. Works for uppercase too.\\
+% |"u| & a u with dieresis allowing hyphenation.\\
+% |"a| & feminine ordinal as in
+% 1{\raise1ex\hbox{\underbar{\scriptsize a}}}.\\
+% |"o| & masculine ordinal as in
+% 1{\raise1ex\hbox{\underbar{\scriptsize o}}}.\\
+% |~n| & a n with tilde. Works for uppercase too.
+% \end{tabular}
+% \caption{The extra definitions made by \texttt{galician.ldf}}
+% \label{tab:galician-quote}
+% \end{table}
+% These active accents character behave according to their original
+% definitions if not followed by one of the characters indicated in
+% that table.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{galician-1.2e}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{galician}\captionsgalician
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{galician} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@galician| to see whether we have to do something here.
+%
+% \changes{galician-1.1c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@galician\@undefined
+ \@nopatterns{Galician}
+ \adddialect\l@galician0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Galician language.
+%
+% \begin{macro}{\captionsgalician}
+% The macro |\captionsgalician| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{galician-1.1d}{1994/11/09}{Added a few missing
+% translations}
+% \changes{galician-1.2b}{1995/07/02}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{galician-1.2j}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{galician-1.2k}{2001/02/20}{Translated Proof}
+% \changes{galician-1.2l}{2003/05/23}{Translated Gloassary}
+% \begin{macrocode}
+\addto\captionsgalician{%
+ \def\prefacename{Prefacio}%
+ \def\refname{Referencias}%
+ \def\abstractname{Resumo}%
+ \def\bibname{Bibliograf\'{\i}a}%
+ \def\chaptername{Cap\'{\i}tulo}%
+ \def\appendixname{Ap\'endice}%
+ \def\contentsname{\'Indice Xeral}%
+ \def\listfigurename{\'Indice de Figuras}%
+ \def\listtablename{\'Indice de T\'aboas}%
+ \def\indexname{\'Indice de Materias}%
+ \def\figurename{Figura}%
+ \def\tablename{T\'aboa}%
+ \def\partname{Parte}%
+ \def\enclname{Adxunto}%
+ \def\ccname{Copia a}%
+ \def\headtoname{A}%
+ \def\pagename{P\'axina}%
+ \def\seename{v\'exase}%
+ \def\alsoname{v\'exase tam\'en}%
+ \def\proofname{Demostraci\'on}%
+ \def\glossaryname{Glosario}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dategalician}
+% The macro |\dategalician| redefines the command |\today| to
+% produce Galician dates.
+% \changes{galician-1.1d}{1994/11/09}{Corrected the name of the month
+% marzo from marzal}
+% \changes{galician-1.2h}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{galician-1.2h}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dategalician{%
+ \def\today{\number\day~de\space\ifcase\month\or
+ xaneiro\or febreiro\or marzo\or abril\or maio\or xu\~no\or
+ xullo\or agosto\or setembro\or outubro\or novembro\or decembro\fi
+ \space de~\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasgalician}
+% \changes{galician-1.2a}{1995/03/14}{Handling of active characters
+% completely rewritten}
+% \begin{macro}{\noextrasgalician}
+%
+% The macro |\extrasgalician| will perform all the extra
+% definitions needed for the Galician language. The macro
+% |\noextrasgalician| is used to cancel the actions of
+% |\extrasgalician|.
+%
+% For Galician, some characters are made active or are
+% redefined. In particular, the \texttt{"} character and the |~|
+% character receive new meanings this can also happen for the
+% \texttt{'} character when the option \Lopt{activeacute} is
+% specified.
+%
+% \changes{galician-1.2c}{1995/07/08}{Make active accent optional}
+% \changes{galician-1.2d}{1995/08/17}{Need to split up the
+% \cs{@ifpackagewith} statement}
+% \begin{macrocode}
+\addto\extrasgalician{\languageshorthands{galician}}
+\initiate@active@char{"}
+\initiate@active@char{~}
+\addto\extrasgalician{%
+ \bbl@activate{"}\bbl@activate{~}}
+\@ifpackagewith{babel}{activeacute}{%
+ \initiate@active@char{'}}{}
+\@ifpackagewith{babel}{activeacute}{%
+ \addto\extrasgalician{\bbl@activate{'}}}{}
+% \end{macrocode}
+% Now make sure that the characters that have been turned into
+% shorthanfd characters expand to `normal' characters outside the
+% catalan environment.
+% \changes{galician-1.2i}{1999/12/16}{Don't forget do deactivate the
+% shorthands}
+% \begin{macrocode}
+\addto\noextrasgalician{%
+ \bbl@deactivate{"}\bbl@deactivate{~}}
+\@ifpackagewith{babel}{activeacute}{%
+ \addto\noextrascatalan{\bbl@deactivate{'}}}{}
+% \end{macrocode}
+%
+% \changes{galician-1.2a}{1995/03/14}{All the code for handling active
+% characters is now moved to \file{babel.def}}
+%
+% Apart from the active characters some other macros get a new
+% definition. Therefore we store the current one to be able to
+% restore them later.
+%
+% \changes{galician-1.2f}{1997/01/08}{Added some comment signs to
+% prevent unwanted spaces in the output}
+% \begin{macrocode}
+\addto\extrasgalician{%
+ \babel@save\"\babel@save\~%
+ \def\"{\protect\@umlaut}%
+ \def\~{\protect\@tilde}}
+\@ifpackagewith{babel}{activeacute}{%
+ \babel@save\'%
+ \addto\extrasgalician{\def\'{\protect\@acute}}
+ }{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% All the code above is necessary because we need a few extra
+% active characters. These characters are then used as indicated in
+% table~\ref{tab:galician-quote}.
+%
+% This option includes some support for working with extended,
+% 8-bit fonts, if available. This assumes that the user has some
+% macros predefined. For instance, if the user has a |\@ac@a| macro
+% defined, the sequence |\'a| or |'a| will both expand to whatever
+% |\@ac@a| is defined to expand, presumably \texttt{\'a}. The
+% names of these macros are the same as those in Ferguson's
+% ML-\TeX{} compatibility package on purpose. Using this method,
+% and provided that adequate hyphenation patterns exist, it is
+% possible to get better hyphenation for Galician than before. If
+% the user has a terminal able to produce these codes directly, it
+% is possible to do so. If the need arises to send the document to
+% someone who does not have such support, it is possible to
+% mechanically translate the document so that the receiver can make
+% use of it.
+%
+% To be able to define the function of the new accents, we first
+% define a couple of `support' macros.
+%
+% \begin{macro}{\dieresis}
+% \begin{macro}{\textacute}
+% \changes{galician-1.1c}{1994/06/26}{Renamed from \cs{acute} as that
+% is a \cs{mathaccent}}
+% \begin{macro}{\texttilde}
+% \changes{galician-1.1c}{1994/06/26}{Renamed from \cs{tilde} as that
+% is a \cs{mathaccent}}
+%
+% The original definition of |\"| is stored as |\dieresis|, because
+% the definition of |\"| might not be the default plain \TeX\
+% one. If the user uses \textsc{PostScript} fonts with the Adobe
+% font encoding the \texttt{"} character is not in the same
+% position as in Knuth's font encoding. In this case |\"| will not
+% be defined as |\accent"7F #1|, but as |\accent'310 #1|. Something
+% similar happens when using fonts that follow the Cork
+% encoding. For this reason we save the definition of |\"| and use
+% that in the definition of other macros. We do likewise for |\'|
+% and |\~|.
+% \begin{macrocode}
+\let\dieresis\"
+\let\texttilde\~
+\@ifpackagewith{babel}{activeacute}{\let\textacute\'}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@umlaut}
+% \begin{macro}{\@acute}
+% \begin{macro}{\@tilde}
+% If the user setup has extended fonts, the Ferguson macros are
+% required to be defined. We check for their existance and, if
+% defined, expand to whatever they are defined to. For instance,
+% |\'a| would check for the existance of a |\@ac@a| macro. It is
+% assumed to expand to the code of the accented letter. If it is
+% not defined, we assume that no extended codes are available and
+% expand to the original definition but enabling hyphenation beyond
+% the accent. This is as best as we can do. It is better if you
+% have extended fonts or ML-\TeX{} because the hyphenation
+% algorithm can work on the whole word. The following macros are
+% directly derived from ML-\TeX{}.\footnote{A problem is perceived
+% here with these macros when used in a multilingual environment
+% where extended hyphenation patterns are available for some but
+% not all languages. Assume that no extended patterns exist at some
+% site for French and that \file{french.sty} would adopt this
+% scheme too. In that case, \texttt{'e} in French would
+% produce the combined accented letter, but hyphenation around it
+% would be suppressed. Both language options would need an
+% independent method to know whether they have extended patterns
+% available. The precise impact of this problem and the possible
+% solutions are under study.}
+%
+% \begin{macrocode}
+\def\@umlaut#1{\allowhyphens\dieresis{#1}\allowhyphens}
+\def\@tilde#1{\allowhyphens\texttilde{#1}\allowhyphens}
+\@ifpackagewith{babel}{activeacute}{%
+ \def\@acute#1{\allowhyphens\textacute{#1}\allowhyphens}}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Now we can define our shorthands: the umlauts,
+% \begin{macrocode}
+\declare@shorthand{galician}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{galician}{"|}{\discretionary{-}{}{\kern.03em}}
+\declare@shorthand{galician}{"u}{\@umlaut{u}}
+\declare@shorthand{galician}{"U}{\@umlaut{U}}
+% \end{macrocode}
+% ordinals\footnote{The code for the ordinals was taken from the
+% answer provided by Raymond Chen
+% {\texttt(raymond@math.berkeley.edu}) to a question by Joseph Gil
+% (\texttt{yogi@cs.ubc.ca}) in \texttt{comp.text.tex}.},
+% \changes{galician-1.2f}{1997/01/08}{Added \cs{leavevmode} to
+% definitions of \texttt{"a} and \texttt{"o}}
+% \begin{macrocode}
+\declare@shorthand{galician}{"o}{%
+ \leavevmode\raise1ex\hbox{\underbar{\scriptsize o}}}
+\declare@shorthand{galician}{"a}{%
+ \leavevmode\raise1ex\hbox{\underbar{\scriptsize a}}}
+% \end{macrocode}
+% acute accents,
+% \changes{galician-1.2b}{1995/07/03}{Changed mathmode definition of
+% acute shorthands to expand to a single prime followed by the next
+% character in the input}
+% \begin{macrocode}
+\@ifpackagewith{babel}{activeacute}{%
+ \declare@shorthand{galician}{'a}{\textormath{\@acute a}{^{\prime} a}}
+ \declare@shorthand{galician}{'e}{\textormath{\@acute e}{^{\prime} e}}
+ \declare@shorthand{galician}{'i}{\textormath{\@acute\i{}}{^{\prime}i}}
+ \declare@shorthand{galician}{'o}{\textormath{\@acute o}{^{\prime} o}}
+ \declare@shorthand{galician}{'u}{\textormath{\@acute u}{^{\prime} u}}
+ \declare@shorthand{galician}{'A}{\textormath{\@acute A}{^{\prime} A}}
+ \declare@shorthand{galician}{'E}{\textormath{\@acute E}{^{\prime} E}}
+ \declare@shorthand{galician}{'I}{\textormath{\@acute I}{^{\prime} I}}
+ \declare@shorthand{galician}{'O}{\textormath{\@acute O}{^{\prime} O}}
+ \declare@shorthand{galician}{'U}{\textormath{\@acute U}{^{\prime} U}}
+% \end{macrocode}
+% tildes,
+% \begin{macrocode}
+ \declare@shorthand{galician}{'n}{\textormath{\~n}{^{\prime} n}}
+ \declare@shorthand{galician}{'N}{\textormath{\~N}{^{\prime} N}}
+% \end{macrocode}
+% the acute accent,
+% \changes{galician-1.2d}{1995/11/11}{Added '{}' as an axtra shorthand}
+% \begin{macrocode}
+ \declare@shorthand{galician}{''}{%
+ \textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
+ }{}
+\declare@shorthand{galician}{~n}{\textormath{\~n}{\@tilde n}}
+\declare@shorthand{galician}{~N}{\textormath{\~N}{\@tilde N}}
+% \end{macrocode}
+%
+% \begin{macro}{\-}
+%
+% All that is left now is the redefinition of |\-|. The new version
+% of |\-| should indicate an extra hyphenation position, while
+% allowing other hyphenation positions to be generated
+% automatically. The standard behaviour of \TeX\ in this respect is
+% unfortunate for Galician but not as much as for Dutch or German,
+% where long compound words are quite normal and all one needs is a
+% means to indicate an extra hyphenation position on top of the
+% ones that \TeX\ can generate from the hyphenation
+% patterns. However, the average length of words in Galician makes
+% this desirable and so it is kept here.
+%
+% \begin{macrocode}
+\addto\extrasgalician{%
+ \babel@save{\-}%
+ \def\-{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{galician-1.2e}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{galician}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/galician.ins b/Master/texmf-dist/source/generic/babel/galician.ins
new file mode 100644
index 00000000000..a50810d8f2c
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/galician.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{galician.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{galician.ldf}{\from{galician.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/german.ins b/Master/texmf-dist/source/generic/babel/german.ins
new file mode 100644
index 00000000000..987f600bf78
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/german.ins
@@ -0,0 +1,149 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{german.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{germanb.ldf}{\from{germanb.dtx}{code}}
+ \file{ngermanb.ldf}{\from{ngermanb.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/germanb.dtx b/Master/texmf-dist/source/generic/babel/germanb.dtx
new file mode 100644
index 00000000000..4e2491b2ecd
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/germanb.dtx
@@ -0,0 +1,543 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{343}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{germanb.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{germanb}
+%\fi
+%\ProvidesFile{germanb.dtx}
+ [2004/02/19 v2.6k German support from the babel system]
+%\iffalse
+%% File `germanb.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2004
+%% by Johannes Braams, TeXniek
+%
+%% Germanb Language Definition File
+%% Copyright (C) 1989 - 2004
+%% by Bernd Raichle raichle at azu.Informatik.Uni-Stuttgart.de
+%% Johannes Braams, TeXniek
+% This file is based on german.tex version 2.5d,
+% by Bernd Raichle, Hubert Partl et.al.
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{germanb.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{germanb.dtx}
+%
+% \changes{germanb-1.0a}{1990/05/14}{Incorporated Nico's comments}
+% \changes{germanb-1.0b}{1990/05/22}{fixed typo in definition for
+% austrian language found by Werenfried Spit
+% \texttt{nspit@fys.ruu.nl}}
+% \changes{germanb-1.0c}{1990/07/16}{Fixed some typos}
+% \changes{germanb-1.1}{1990/07/30}{When using PostScript fonts with
+% the Adobe fontencoding, the dieresis-accent is located elsewhere,
+% modified code}
+% \changes{germanb-1.1a}{1990/08/27}{Modified the documentation
+% somewhat}
+% \changes{germanb-2.0}{1991/04/23}{Modified for babel 3.0}
+% \changes{germanb-2.0a}{1991/05/25}{Removed some problems in change
+% log}
+% \changes{germanb-2.1}{1991/05/29}{Removed bug found by van der Meer}
+% \changes{germanb-2.2}{1991/06/11}{Removed global assignments,
+% brought uptodate with \file{german.tex} v2.3d}
+% \changes{germanb-2.2a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{germanb-2.3}{1991/11/05}{Rewritten parts of the code to use
+% the new features of babel version 3.1}
+% \changes{germanb-2.3e}{1991/11/10}{Brought up-to-date with
+% \file{german.tex} v2.3e (plus some bug fixes) [br]}
+% \changes{germanb-2.5}{1994/02/08}{Update or \LaTeXe}
+% \changes{germanb-2.5c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved the identification after the loading of
+% \file{babel.def}}
+% \changes{germanb-2.6a}{1995/02/15}{Moved the identification to the
+% top of the file}
+% \changes{germanb-2.6a}{1995/02/15}{Rewrote the code that handles the
+% active double quote character}
+% \changes{germanb-2.6d}{1996/07/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{germanb-2.6d}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The German language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% German language as well as for the Austrian dialect of this
+% language\footnote{This file is a re-implementation of Hubert
+% Partl's \file{german.sty} version 2.5b, see~\cite{HP}.}.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:german-quote} an overview is given of its
+% purpose. One of the reasons for this is that in the German
+% language some character combinations change when a word is broken
+% between the combination. Also the vertical placement of the
+% umlaut can be controlled this way.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"a| & |\"a|, also implemented for the other
+% lowercase and uppercase vowels. \\
+% |"s| & to produce the German \ss{} (like |\ss{}|). \\
+% |"z| & to produce the German \ss{} (like |\ss{}|). \\
+% |"ck|& for |ck| to be hyphenated as |k-k|. \\
+% |"ff|& for |ff| to be hyphenated as |ff-f|,
+% this is also implemented for l, m, n, p, r and t\\
+% |"S| & for |SS| to be |\uppercase{"s}|. \\
+% |"Z| & for |SZ| to be |\uppercase{"z}|. \\
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |"`| & for German left double quotes (looks like ,,). \\
+% |"'| & for German right double quotes. \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{german.ldf}}\label{tab:german-quote}
+% \end{center}
+% \end{table}
+% The quotes in table~\ref{tab:german-quote} can also be typeset by
+% using the commands in table~\ref{tab:more-quote}.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |\glqq| & for German left double quotes (looks like ,,). \\
+% |\grqq| & for German right double quotes (looks like ``). \\
+% |\glq| & for German left single quotes (looks like ,). \\
+% |\grq| & for German right single quotes (looks like `). \\
+% |\flqq| & for French left double quotes (similar to $<<$). \\
+% |\frqq| & for French right double quotes (similar to $>>$).\\
+% |\flq| & for (French) left single quotes (similar to $<$). \\
+% |\frq| & for (French) right single quotes (similar to $>$). \\
+% |\dq| & the original quotes character (|"|). \\
+% \end{tabular}
+% \caption{More commands which produce quotes, defined
+% by \file{german.ldf}}\label{tab:more-quote}
+% \end{center}
+% \end{table}
+%
+% \StopEventually{}
+%
+% When this file was read through the option \Lopt{germanb} we make
+% it behave as if \Lopt{german} was specified.
+% \begin{macrocode}
+\def\bbl@tempa{germanb}
+\ifx\CurrentOption\bbl@tempa
+ \def\CurrentOption{german}
+\fi
+% \end{macrocode}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{germanb-2.6d}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{german} will be an `unknown' language, so we
+% have to make it known. So we check for the existence of
+% |\l@german| to see whether we have to do something here.
+%
+% \changes{germanb-2.0}{1991/04/23}{Now use \cs{adddialect} if
+% language undefined}
+% \changes{germanb-2.2d}{1991/10/27}{Removed use of \cs{@ifundefined}}
+% \changes{germanb-2.3e}{1991/11/10}{Added warning, if no german
+% patterns loaded}
+% \changes{germanb-2.5c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@german\@undefined
+ \@nopatterns{German}
+ \adddialect\l@german0
+\fi
+% \end{macrocode}
+%
+% For the Austrian version of these definitions we just add another
+% language.
+% \changes{germanb-2.0}{1991/04/23}{Now use \cs{adddialect} for
+% austrian}
+% \begin{macrocode}
+\adddialect\l@austrian\l@german
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the German language.
+%
+% \begin{macro}{\captionsgerman}
+% \begin{macro}{\captionsaustrian}
+% Either the macro |\captionsgerman| or the macro
+% |\captionsaustrian| will define all strings used in the four
+% standard document classes provided with \LaTeX.
+%
+% \changes{germanb-2.2}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{germanb-2.2}{1991/06/06}{\cs{pagename} should be
+% \cs{headpagename}}
+% \changes{germanb-2.3e}{1991/11/10}{Added \cs{prefacename},
+% \cs{seename} and \cs{alsoname}}
+% \changes{germanb-2.4}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{germanb-2.6b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{germanb-2.6d}{1996/07/10}{Construct control sequence on the
+% fly}
+% \changes{germanb-2.6j}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{Vorwort}%
+ \def\refname{Literatur}%
+ \def\abstractname{Zusammenfassung}%
+ \def\bibname{Literaturverzeichnis}%
+ \def\chaptername{Kapitel}%
+ \def\appendixname{Anhang}%
+ \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt
+ \def\listfigurename{Abbildungsverzeichnis}%
+ \def\listtablename{Tabellenverzeichnis}%
+ \def\indexname{Index}%
+ \def\figurename{Abbildung}%
+ \def\tablename{Tabelle}% % oder: Tafel
+ \def\partname{Teil}%
+ \def\enclname{Anlage(n)}% % oder: Beilage(n)
+ \def\ccname{Verteiler}% % oder: Kopien an
+ \def\headtoname{An}%
+ \def\pagename{Seite}%
+ \def\seename{siehe}%
+ \def\alsoname{siehe auch}%
+ \def\proofname{Beweis}%
+ \def\glossaryname{Glossar}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dategerman}
+% The macro |\dategerman| redefines the command
+% |\today| to produce German dates.
+% \changes{germanb-2.3e}{1991/11/10}{Added \cs{month@german}}
+% \changes{germanb-2.6f}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{germanb-2.6f}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\month@german{\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi}
+\def\dategerman{\def\today{\number\day.~\month@german
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateaustrian}
+% The macro |\dateaustrian| redefines the command
+% |\today| to produce Austrian version of the German dates.
+% \changes{germanb-2.6f}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{germanb-2.6f}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\dateaustrian{\def\today{\number\day.~\ifnum1=\month
+ J\"anner\else \month@german\fi \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasgerman}
+% \begin{macro}{\extrasaustrian}
+% \changes{germanb-2.0b}{1991/05/29}{added some comment chars to
+% prevent white space}
+% \changes{germanb-2.2}{1991/06/11}{Save all redefined macros}
+% \begin{macro}{\noextrasgerman}
+% \begin{macro}{\noextrasaustrian}
+% \changes{germanb-1.1}{1990/07/30}{Added \cs{dieresis}}
+% \changes{germanb-2.0b}{1991/05/29}{added some comment chars to
+% prevent white space}
+% \changes{germanb-2.2}{1991/06/11}{Try to restore everything to its
+% former state}
+% \changes{germanb-2.6d}{1996/07/10}{Construct control sequence
+% \cs{extrasgerman} or \cs{extrasaustrian} on the fly}
+%
+% Either the macro |\extrasgerman| or the macros |\extrasaustrian|
+% will perform all the extra definitions needed for the German
+% language. The macro |\noextrasgerman| is used to cancel the
+% actions of |\extrasgerman|.
+%
+% For German (as well as for Dutch) the \texttt{"} character is
+% made active. This is done once, later on its definition may vary.
+% \begin{macrocode}
+\initiate@active@char{"}
+\@namedef{extras\CurrentOption}{%
+ \languageshorthands{german}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{germanb-2.6i}{1999/12/16}{Deactivate shorthands ouside of
+% German}
+% \begin{macrocode}
+\addto\noextrasgerman{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+% \changes{germanb-2.6a}{1995/02/15}{All the code to handle the active
+% double quote has been moved to \file{babel.def}}
+%
+% In order for \TeX\ to be able to hyphenate German words which
+% contain `\ss' (in the \texttt{OT1} position |^^Y|) we have to
+% give the character a nonzero |\lccode| (see Appendix H, the \TeX
+% book).
+% \changes{germanb-2.6c}{1996/04/08}{Use decimal number instead of
+% hat-notation as the hat may be activated}
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@savevariable{\lccode25}%
+ \lccode25=25}
+% \end{macrocode}
+% \changes{germanb-2.6a}{1995/02/15}{Removeed \cs{3} as it is no
+% longer in \file{german.ldf}}
+%
+% The umlaut accent macro |\"| is changed to lower the umlaut dots.
+% The redefinition is done with the help of |\umlautlow|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\"\umlautlow}
+\@namedef{noextras\CurrentOption}{\umlauthigh}
+% \end{macrocode}
+% The german hyphenation patterns can be used with |\lefthyphenmin|
+% and |\righthyphenmin| set to~2.
+% \changes{germanb-2.6a}{1995/05/13}{use \cs{germanhyphenmins} to store
+% the correct values}
+% \changes{germanb-2.6j}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% For German texts we need to make sure that |\frenchspacing| is
+% turned on.
+% \changes{germanb-2.6k}{2001/01/26}{Turn frenchspacing on, as in
+% \texttt{german.sty}}
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchspacing}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \changes{germanb-2.6a}{1995/02/15}{\cs{umlautlow} and
+% \cs{umlauthigh} moved to \file{glyphs.dtx}, as well as
+% \cs{newumlaut} (now \cs{lower@umlaut}}
+%
+% The code above is necessary because we need an extra active
+% character. This character is then used as indicated in
+% table~\ref{tab:german-quote}.
+%
+% To be able to define the function of |"|, we first define a
+% couple of `support' macros.
+%
+% \changes{germanb-2.3e}{1991/11/10}{Added \cs{save@sf@q} macro and
+% rewrote all quote macros to use it}
+% \changes{germanb-2.3h}{1991/02/16}{moved definition of
+% \cs{allowhyphens}, \cs{set@low@box} and \cs{save@sf@q} to
+% \file{babel.com}}
+% \changes{germanb-2.6a}{1995/02/15}{Moved all quotation characters to
+% \file{glyphs.dtx}}
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+% \changes{germanb-2.6c}{1996/01/24}{Moved \cs{german@dq@disc} to
+% babel.def, calling it \cs{bbl@disc}}
+%
+% \changes{germanb-2.6a}{1995/02/15}{Use \cs{ddot} instead of
+% \cs{@MATHUMLAUT}}
+%
+% Now we can define the doublequote macros: the umlauts,
+% \changes{germanb-2.6c}{1996/05/30}{added the \cs{allowhyphens}}
+% \begin{macrocode}
+\declare@shorthand{german}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
+\declare@shorthand{german}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
+\declare@shorthand{german}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}}
+\declare@shorthand{german}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
+\declare@shorthand{german}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
+\declare@shorthand{german}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}}
+% \end{macrocode}
+% tremas,
+% \begin{macrocode}
+\declare@shorthand{german}{"e}{\textormath{\"{e}}{\ddot e}}
+\declare@shorthand{german}{"E}{\textormath{\"{E}}{\ddot E}}
+\declare@shorthand{german}{"i}{\textormath{\"{\i}}%
+ {\ddot\imath}}
+\declare@shorthand{german}{"I}{\textormath{\"{I}}{\ddot I}}
+% \end{macrocode}
+% german es-zet (sharp s),
+% \changes{germanb-2.6f}{1997/05/08}{use \cs{SS} instead of
+% \texttt{SS}, removed braces after \cs{ss}}
+% \begin{macrocode}
+\declare@shorthand{german}{"s}{\textormath{\ss}{\@SS{}}}
+\declare@shorthand{german}{"S}{\SS}
+\declare@shorthand{german}{"z}{\textormath{\ss}{\@SS{}}}
+\declare@shorthand{german}{"Z}{SZ}
+% \end{macrocode}
+% german and french quotes,
+% \begin{macrocode}
+\declare@shorthand{german}{"`}{\glqq}
+\declare@shorthand{german}{"'}{\grqq}
+\declare@shorthand{german}{"<}{\flqq}
+\declare@shorthand{german}{">}{\frqq}
+% \end{macrocode}
+% discretionary commands
+% \begin{macrocode}
+\declare@shorthand{german}{"c}{\textormath{\bbl@disc ck}{c}}
+\declare@shorthand{german}{"C}{\textormath{\bbl@disc CK}{C}}
+\declare@shorthand{german}{"F}{\textormath{\bbl@disc F{FF}}{F}}
+\declare@shorthand{german}{"l}{\textormath{\bbl@disc l{ll}}{l}}
+\declare@shorthand{german}{"L}{\textormath{\bbl@disc L{LL}}{L}}
+\declare@shorthand{german}{"m}{\textormath{\bbl@disc m{mm}}{m}}
+\declare@shorthand{german}{"M}{\textormath{\bbl@disc M{MM}}{M}}
+\declare@shorthand{german}{"n}{\textormath{\bbl@disc n{nn}}{n}}
+\declare@shorthand{german}{"N}{\textormath{\bbl@disc N{NN}}{N}}
+\declare@shorthand{german}{"p}{\textormath{\bbl@disc p{pp}}{p}}
+\declare@shorthand{german}{"P}{\textormath{\bbl@disc P{PP}}{P}}
+\declare@shorthand{german}{"r}{\textormath{\bbl@disc r{rr}}{r}}
+\declare@shorthand{german}{"R}{\textormath{\bbl@disc R{RR}}{R}}
+\declare@shorthand{german}{"t}{\textormath{\bbl@disc t{tt}}{t}}
+\declare@shorthand{german}{"T}{\textormath{\bbl@disc T{TT}}{T}}
+% \end{macrocode}
+% We need to treat |"f| a bit differently in order to preserve the
+% ff-ligature.
+% \changes{germanb-2.6f}{1998/06/15}{Copied the coding for \texttt{"f}
+% from german.dtx version 2.5d}
+% \begin{macrocode}
+\declare@shorthand{german}{"f}{\textormath{\bbl@discff}{f}}
+\def\bbl@discff{\penalty\@M
+ \afterassignment\bbl@insertff \let\bbl@nextff= }
+\def\bbl@insertff{%
+ \if f\bbl@nextff
+ \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\relax\discretionary{ff-}{f}{ff}\allowhyphens}{f\bbl@nextff}}
+\let\bbl@nextff=f
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{german}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{german}{"|}{%
+ \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+\declare@shorthand{german}{""}{\hskip\z@skip}
+\declare@shorthand{german}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{german}{"=}{\penalty\@M-\hskip\z@skip}
+% \end{macrocode}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% \begin{macro}{\ck}
+% All that's left to do now is to define a couple of commands
+% for reasons of compatibility with \file{german.sty}.
+% \changes{germanb-2.6f}{1998/06/07}{Now use \cs{shorthandon} and
+% \cs{shorthandoff}}
+% \begin{macrocode}
+\def\mdqon{\shorthandon{"}}
+\def\mdqoff{\shorthandoff{"}}
+\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{germanb-2.6d}{1996/11/02}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/greek.dtx b/Master/texmf-dist/source/generic/babel/greek.dtx
new file mode 100644
index 00000000000..4f198cdee56
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/greek.dtx
@@ -0,0 +1,864 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{636}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{greek.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{greek}
+%\fi
+%\ProvidesFile{greek.dtx}
+ [2005/03/30 v1.3l Greek support from the babel system]
+%\iffalse
+%% File `greek.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Greek language Definition File
+%% Copyright (C) 1997, 2005
+%% by Apostolos Syropoulos
+%% Johannes Braams, TeXniek
+%
+%% Please report errors to: Apostolos Syropoulos
+%% apostolo at platon.ee.duth.gr or
+%% apostolo at obelix.ee.duth.gr
+%% (or J.L. Braams <babel at braams.cistron.nl)
+%
+% This file is part of the babel system, it provides the source
+% code for the greek language definition file. The original
+% version of this file was written by Apostolos Syropoulos.
+% It was then enhanced by adding code from kdgreek.sty from David
+% Kastrup <dak@neuroinformatik.ruhr-uni-bochum.de> with his
+% consent.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{greek.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{greek.dtx}
+%
+% \changes{greek-1.0b}{1996/07/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{greek-1.0b}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning}
+% \changes{greek-1.2}{1997/10/28}{Classical Greek is now a dialect}
+% \changes{greek-1.2b}{1997/11/01}{Classical Greek is now called
+% ``Polutoniko'' Greek. The previous name was at least misleading}
+% \changes{greek-1.2c}{1998/06/26}{This version conforms to version
+% 2.0 of the CB fonts and consequently we added a few new
+% symbol-producing commands}
+% \changes{greek-1.3a}{1998/07/04}{polutoniko is now an attribute to
+% Greek, no longer a `dialect'}
+%
+% \section{The Greek language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author is Apostolos Syropoulos
+% (\texttt{apostolo@platon.ee.duth.gr}), code from
+% \file{kdgreek.sty} by David Kastrup
+% \texttt{dak@neuroinformatik.ruhr-uni-bochum.de} was used to
+% enhance the support for typesetting greek texts.} defines all the
+% language definition macros for the Greek language, i.e.,
+% as it used today with only one accent, and the attribute
+% $\pi o\lambda\upsilon\tau o\nu\kappa\acute{o}$ (``Polutoniko'')
+% for typesetting greek text with all accents. This separation
+% arose out of the need to simplify things, for only very few
+% people will be really interested to typeset polytonic Greek
+% text.
+%
+% \DescribeMacro\greektext
+% \DescribeMacro\latintext
+% The commands |\greektext| and |\latintext| can be used to switch
+% to greek or latin fonts. These are declarations.
+%
+% \DescribeMacro\textgreek
+% \DescribeMacro\textlatin
+% The commands |\textgreek| and |\textlatin| both take one argument
+% which is then typeset using the requested font encoding.
+% \DescribeMacro\textol
+% The command |\greekol| switches to the greek outline font family,
+% while the command |\textol| typests a short text in outline font.
+% A number of extra greek characters are made available through the
+% added text commands |\stigma|, |\qoppa|, |\sampi|, |\ddigamma|,
+% |\Digamma|, |\euro|, |\permill|, and |\vardigamma|.
+%
+% \subsection{Typing conventions}
+%
+% Entering greek text can be quite difficult because of the many
+% diacritical signs that need to be added for various purposes.
+% The fonts that are used to typeset Greek make this a lot
+% easier by offering a lot of ligatures. But in order for this to
+% work, some characters need to be considered as letters. These
+% characters are |<|, |>|, |~|, |`|, |'|, |"| and
+% \verb=|=. Therefore their |\lccode| is changed when Greek is in
+% effect. In order to let |\uppercase| give correct results, the
+% |\uccode| of these characters is set to a non-existing character
+% to make them disappear. Of course not all characters are needed
+% when typesetting ``modern'' $\mu o\nu o\tau o\nu
+% \iota\kappa\acute{o}$. In that case we only need the |'| and |"|
+% symbols which are treated in the proper way.
+%
+% \subsection{Greek numbering}
+%
+% The Greek alphabetical numbering system, like the Roman one, is
+% still used in everyday life for short enumerations. Unfortunately
+% most Greeks don't know how to write Greek numbers bigger than 20 or
+% 30. Nevertheless, in official editions of the last century and
+% beginning of this century this numbering system was also used for
+% dates and numbers in the range of several thousands. Nowadays
+% this numbering system is primary used by the Eastern Orthodox
+% Church and by certain scholars. It is hence necessary to be able
+% to typeset any Greek numeral up to \hbox{999\,999}. Here are the
+% conventions:
+% \begin{itemize}
+% \item There is no Greek numeral for any number less than or equal
+% to $0$.
+% \item Numbers from $1$ to $9$ are denoted by letters alpha, beta,
+% gamma, delta, epsilon, stigma, zeta, eta, theta, followed by a
+% mark similar to the mathematical symbol ``prime''. (Nowadays
+% instead of letter stigma the digraph sigma tau is used for number
+% $6$. Mainly because the letter stigma is not always available, so
+% people opt to write down the first two letters of its name as an
+% alternative. In our implementation we produce the letter stigma,
+% not the digraph sigma tau.)
+% \item Decades from $10$ to $90$ are denoted by letters iota,
+% kappa, lambda, mu, nu, xi, omikron, pi, qoppa, again followed by
+% the numeric mark. The qoppa used for this purpose has a special
+% zig-zag form, which doesn't resemble at all the original
+% `q'-like qoppa.
+% \item Hundreds from $100$ to $900$ are denoted by letters rho,
+% sigma, tau, upsilon, phi, chi, psi, omega, sampi, followed by the
+% numeric mark.
+% \item Any number between $1$ and $999$ is obtained by a group of
+% letters denoting the hundreds decades and units, followed by a
+% numeric mark.
+% \item To denote thousands one uses the same method, but this time
+% the mark is placed in front of the letter, and under the baseline
+% (it is inverted by 180 degrees). When a group of letters denoting
+% thousands is followed by a group of letters denoting a number
+% under $1000$, then both marks are used.
+% \end{itemize}
+%
+% Using these conventions one obtains numbers up to \hbox{999\,999}.
+% \DescribeMacro{\greeknumeral}
+% The command |\greeknumeral| makes it possible to typeset Greek
+% numerals. There is also an
+% \DescribeMacro{\Greeknumeral}
+% ``uppercase'' version of this macro: |\Greeknumeral|.
+%
+% Another system which was in wide use only in Athens, could
+% express any positive number. This system is implemented in
+% package |athnum|.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{greek-1.0b}{1996/11/02}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+% When the option \Lopt{polutonikogreek} was used, redefine
+% |\CurrentOption| to prevent problems later on.
+% \begin{macrocode}
+\gdef\CurrentOption{greek}%
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{greek} could be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@greek| to see whether we have to do
+% something here.
+%
+% \begin{macrocode}
+\ifx\l@greek\@undefined
+ \@nopatterns{greek}
+ \adddialect\l@greek0\fi
+% \end{macrocode}
+%
+% Now we declare the |polutoniko| language attribute.
+% \begin{macrocode}
+\bbl@declare@ttribute{greek}{polutoniko}{%
+% \end{macrocode}
+% This code adds the expansion of |\extraspolutonikogreek| to
+% |\extrasgreek| and changes the definition of |\today| for Greek
+% to produce polytonic month names.
+% \begin{macrocode}
+ \expandafter\addto\expandafter\extrasgreek
+ \expandafter{\extraspolutonikogreek}%
+ \let\captionsgreek\captionspolutonikogreek
+ \let\gr@month\gr@c@month
+% \end{macrocode}
+% We need to take some extra precautions in order not to break
+% older documents which still use the old \Lopt{polutonikogreek}
+% option.
+% \changes{greek-1.3f}{1999/09/29}{Added some code to make older
+% documents work}
+% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was
+% missing}
+% \begin{macrocode}
+ \let\l@polutonikogreek\l@greek
+ \let\datepolutonikogreek\dategreek
+ \let\extraspolutonikogreek\extrasgreek
+ \let\noextraspolutonikogreek\noextrasgreek
+ }
+% \end{macrocode}
+%
+% Typesetting Greek texts implies that a special set of fonts needs
+% to be used. The current support for greek uses the |cb| fonts
+% created by Claudio Beccari\footnote{Apostolos Syropoulos wishes
+% to thank him for his patience, collaboration, cooments and
+% suggestions.}. The |cb| fonts provide all sorts of \textit{font
+% combinations}. In order to use these fonts we define the Local
+% GReek encoding (LGR, see the file \file{greek.fdd}). We make sure
+% that this encoding is known to \LaTeX, and if it isn't we abort.
+% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now
+% lowercase}
+% \begin{macrocode}
+\InputIfFileExists{lgrenc.def}{%
+ \message{Loading the definitions for the Greek font encoding}}{%
+ \errhelp{I can't find the lgrenc.def file for the Greek fonts}%
+ \errmessage{Since I do not know what the LGR encoding means^^J
+ I can't typeset Greek.^^J
+ I stop here, while you get a suitable lgrenc.def file}\@@end
+ }
+% \end{macrocode}
+%
+% Now we define two commands that offer the possibility to switch
+% between Greek and Roman encodings.
+%
+% \begin{macro}{\greektext}
+% The command |\greektext| will switch from Latin font encoding to
+% the Greek font encoding. This assumes that the `normal' font
+% encoding is a Latin one. This command is a \emph{declaration},
+% for shorter pieces of text the command |\textgreek| should be
+% used.
+% \begin{macrocode}
+\DeclareRobustCommand{\greektext}{%
+ \fontencoding{LGR}\selectfont
+ \def\encodingdefault{LGR}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textgreek}
+% This command takes an argument which is then typeset using the
+% requested font encoding. In order to avoid many encoding switches
+% it operates in a local scope.
+% \changes{greek-1.0b}{1996/09/23}{Added a level of braces to keep
+% encoding change local}
+% \changes{greek-1.3k}{2003/03/19}{Added \cs{leavevmode} as was done
+% with \cs{latintext}}
+% \begin{macrocode}
+\DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textol}
+% A last aspect of the set of fonts provided with this version of
+% support for typesetting Greek texts is that it contains an
+% outline family. In order to make it available we define the command
+% |\textol|.
+% \begin{macrocode}
+\def\outlfamily{\usefont{LGR}{cmro}{m}{n}}
+\DeclareTextFontCommand{\textol}{\outlfamily}
+% \end{macrocode}
+% \end{macro}
+%
+% The next step consists in defining commands to switch to (and
+% from) the Greek language.
+%
+% \begin{macro}{\greekhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+% Yannis Haralambous has suggested this value
+\providehyphenmins{\CurrentOption}{\@ne\@ne}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{greek-1.1e}{1997/10/12}{Added caption name for proof}
+% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe ep'ishc}
+% instead of \texttt{bl'pe ep'ishc}}
+%
+% \begin{macro}{\captionsgreek}
+% The macro |\captionsgreek| defines all strings used in the
+% four standard document classes provided with \LaTeX.
+% \changes{greek-1.3h}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{greek-1.3i}{2000/10/02}{The final sigma in all names appears
+% as `s' instead of `c'.}
+% \begin{macrocode}
+\addto\captionsgreek{%
+ \def\prefacename{Pr'ologos}%
+ \def\refname{Anafor'es}%
+ \def\abstractname{Per'ilhyh}%
+ \def\bibname{Bibliograf'ia}%
+ \def\chaptername{Kef'alaio}%
+ \def\appendixname{Par'arthma}%
+ \def\contentsname{Perieq'omena}%
+ \def\listfigurename{Kat'alogos Sqhm'atwn}%
+ \def\listtablename{Kat'alogos Pin'akwn}%
+ \def\indexname{Euret'hrio}%
+ \def\figurename{Sq'hma}%
+ \def\tablename{P'inakas}%
+ \def\partname{M'eros}%
+ \def\enclname{Sunhmm'ena}%
+ \def\ccname{Koinopo'ihsh}%
+ \def\headtoname{Pros}%
+ \def\pagename{Sel'ida}%
+ \def\seename{bl'epe}%
+ \def\alsoname{bl'epe ep'ishs}%
+ \def\proofname{Ap'odeixh}%
+ \def\glossaryname{Glwss'ari}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \changes{greek-1.2}{1997/10/28}{Added caption names for
+% \cs{polutonikogreek}}
+% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe >ep'ishc}
+% instead of \texttt{bl'pe >ep'ishc}}
+%
+% \begin{macro}{\captionspolutonikogreek}
+% For texts written in the $\pi o\lambda\upsilon\tau
+% o\nu\kappa\acute{o}$ (polytonic greek) the translations are
+% the same as above, but some words are spelled differently. For
+% now we just add extra definitions to |\captionsgreek| in order to
+% override the earlier definitions.
+% \begin{macrocode}
+\let\captionspolutonikogreek\captionsgreek
+\addto\captionspolutonikogreek{%
+ \def\refname{>Anafor`es}%
+ \def\indexname{E<uret'hrio}%
+ \def\figurename{Sq~hma}%
+ \def\headtoname{Pr`os}%
+ \def\alsoname{bl'epe >ep'ishs}%
+ \def\proofname{>Ap'odeixh}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\gr@month}
+% \changes{greek-1.1e}{1997/10/12}{Macro added}
+% \begin{macro}{\dategreek}
+% The macro |\dategreek| redefines the command |\today| to
+% produce greek dates. The name of the month is now produced
+% by the macro |\gr@month| since it is needed in the definition
+% of the macro |\Grtoday|.
+% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou}
+% instead of \texttt{Oktobr'iou}}
+% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces
+% the name of the month}
+% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}}
+% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\gr@month{%
+ \ifcase\month\or
+ Ianouar'iou\or Febrouar'iou\or Mart'iou\or April'iou\or
+ Ma'"iou\or Ioun'iou\or Ioul'iou\or Augo'ustou\or
+ Septembr'iou\or Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi}
+\def\dategreek{%
+ \def\today{\number\day \space \gr@month\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\gr@c@greek}
+% \changes{greek-1.2}{1997/10/28}{Added macro \cs{gr@cl@month}}
+% \changes{greek-1.2}{1997/10/28}{Added macro
+% \cs{datepolutonikogreek}}
+% \changes{greek-1.3a}{1997/10/28}{removed macro
+% \cs{datepolutonikogreek}}
+% \begin{macrocode}
+\def\gr@c@month{%
+ \ifcase\month\or >Ianouar'iou\or
+ Febrouar'iou\or Mart'iou\or >April'iou\or Ma"'iou\or
+ >Ioun'iou\or >Ioul'iou\or A>ugo'ustou\or Septembr'iou\or
+ >Oktwbr'iou\or Noembr'iou\or Dekembr'iou\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Grtoday}
+% \changes{greek-1.1}{1996/10/28}{Added macro \cs{Grtoday}}
+% The macro |\Grtoday| produces the current date, only that the
+% month and the day are shown as greek numerals instead of arabic
+% as it is usually the case.
+% \begin{macrocode}
+\def\Grtoday{%
+ \expandafter\Greeknumeral\expandafter{\the\day}\space
+ \gr@c@month \space
+ \expandafter\Greeknumeral\expandafter{\the\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasgreek}
+% \begin{macro}{\noextrasgreek}
+% The macro |\extrasgreek| will perform all the extra definitions
+% needed for the Greek language. The macro |\noextrasgreek| is used
+% to cancel the actions of |\extrasgreek|. For the moment these
+% macros switch the fontencoding used and the definition of the
+% internal macros |\@alph| and |\@Alph| because in Greek we do use
+% the Greek numerals.
+%
+% \begin{macrocode}
+\addto\extrasgreek{\greektext}
+\addto\noextrasgreek{\latintext}
+% \end{macrocode}
+%
+% \begin{macro}{\gr@ill@value}
+% When the argument of |\greeknumeral| has a value outside of the
+% acceptable bounds ($0 < x < 999999$) a warning will be issued
+% (and nothing will be printed).
+% \begin{macrocode}
+\def\gr@ill@value#1{%
+ \PackageWarning{babel}{Illegal value (#1) for greeknumeral}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\anw@true}
+% \begin{macro}{\anw@false}
+% \begin{macro}{\anw@print}
+% When a a large number with three \emph{trailing} zero's is to be
+% printed those zeros \emph{and} the numeric mark need to be
+% discarded. As each `digit' is processed by a separate macro
+% \emph{and} because the processing needs to be expandable we need
+% some helper macros that help remember to \emph{not} print the
+% numeric mark (|\anwtonos|).
+%
+% The command |\anw@false| switches the printing of the numeric
+% mark off by making |\anw@print| expand to nothing. The command
+% |\anw@true| (re)enables the printing of the numeric marc. These
+% macro's need to be robust in order to prevent improper expansion
+% during writing to files or during |\uppercase|.
+% \begin{macrocode}
+\DeclareRobustCommand\anw@false{%
+ \DeclareRobustCommand\anw@print{}}
+\DeclareRobustCommand\anw@true{%
+ \DeclareRobustCommand\anw@print{\anwtonos}}
+\anw@true
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\greeknumeral}
+% The command |\greeknumeral| needs to be \emph{fully} expandable
+% in order to get the right information in auxiliary
+% files. Therefore we use a big |\if|-construction to check the
+% value of the argument and start the parsing at the right level.
+% \begin{macrocode}
+\def\greeknumeral#1{%
+% \end{macrocode}
+% If the value is negative or zero nothing is printed and a warning
+% is issued.
+% \changes{greek-1.3b}{1999/04/03}{Added \cs{expandafter} and
+% \cs{number} (PR3000) in order to make a counter an acceptable
+% argument}
+% \begin{macrocode}
+ \ifnum#1<\@ne\space\gr@ill@value{#1}%
+ \else
+ \ifnum#1<10\expandafter\gr@num@i\number#1%
+ \else
+ \ifnum#1<100\expandafter\gr@num@ii\number#1%
+ \else
+% \end{macrocode}
+% We use the available shorthands for 1.000 (|\@m|) and 10.000
+% (|\@M|) to save a few tokens.
+% \begin{macrocode}
+ \ifnum#1<\@m\expandafter\gr@num@iii\number#1%
+ \else
+ \ifnum#1<\@M\expandafter\gr@num@iv\number#1%
+ \else
+ \ifnum#1<100000\expandafter\gr@num@v\number#1%
+ \else
+ \ifnum#1<1000000\expandafter\gr@num@vi\number#1%
+ \else
+% \end{macrocode}
+% If the value is too large, nothing is printed and a warning
+% is issued.
+% \begin{macrocode}
+ \space\gr@ill@value{#1}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Greeknumeral}
+% The command |\Greeknumeral| prints uppercase greek numerals.
+% The parsing is performed by the macro |\greeknumeral|.
+% \begin{macrocode}
+\def\Greeknumeral#1{%
+ \expandafter\MakeUppercase\expandafter{\greeknumeral{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\greek@alph}
+% \begin{macro}{\greek@Alph}
+% In the previous release of this language definition the
+% commands |\greek@aplh| and |\greek@Alph| were kept just for
+% reasons of compatibility. Here again they become meaningful macros.
+% They are definited in a way that even page numbering with greek
+% numerals is possible. Since the macros |\@alph| and |\@Alph| will
+% lose their original meaning while the Greek option is active, we
+% must save their original value.
+% macros |\@alph|
+% \begin{macrocode}
+\let\latin@alph\@alph
+\let\latin@Alph\@Alph
+% \end{macrocode}
+% Then we define the Greek versions; the additional |\expandafter|s
+% are needed in order to make sure the table of contents will be
+% correct, e.g., when we have appendixes.
+% \begin{macrocode}
+\def\greek@alph#1{\expandafter\greeknumeral\expandafter{\the#1}}
+\def\greek@Alph#1{\expandafter\Greeknumeral\expandafter{\the#1}}
+% \end{macrocode}
+%
+% Now we can set up the switching.
+% \changes{greek-1.1a}{1997/03/03}{removed two superfluous @'s which
+% made \cs{@alph} undefined}
+% \begin{macrocode}
+\addto\extrasgreek{%
+ \let\@alph\greek@alph
+ \let\@Alph\greek@Alph}
+\addto\noextrasgreek{%
+ \let\@alph\latin@alph
+ \let\@Alph\latin@Alph}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\greek@roman}
+% \begin{macro}{\greek@Roman}
+% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman}
+% back to the language specific file}
+% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to
+% be added to \cs{extraspolutonikogreek}}
+% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need
+% \emph{not} be in \cs{extraspolutonikogreek} when they are already
+% in \cs{extrasgreek}}
+%
+% To prevent roman numerals being typeset in greek letters we need
+% to adopt the internal \LaTeX\ commands |\@roman| and
+% |\@Roman|. \textbf{Note that this may cause errors where
+% |\@roman| ends up in a situation where it needs to be expanded;
+% problems are known to exist with the AMS document classes.}
+% \begin{macrocode}
+\let\latin@roman\@roman
+\let\latin@Roman\@Roman
+\def\greek@roman#1{\textlatin{\latin@roman{#1}}}
+\def\greek@Roman#1{\textlatin{\latin@Roman{#1}}}
+\addto\extrasgreek{%
+ \let\@roman\greek@roman
+ \let\@Roman\greek@Roman}
+\addto\noextrasgreek{%
+ \let\@roman\latin@roman
+ \let\@Roman\latin@Roman}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\greek@amp}
+% \begin{macro}{\ltx@amp}
+% The greek fonts do not contain an ampersand, so the \LaTeX\
+% command |\&| dosn't give the expected result if we do not do
+% something about it.
+% \changes{greek-1.2f}{1999/04/25}{Now switch the definition of
+% \cs{\&} from \cs{extrasgreek}}
+% \changes{greek-1.3c}{1999/05/17}{Added a missing opening brace}
+% \begin{macrocode}
+\let\ltx@amp\&
+\def\greek@amp{\textlatin{\ltx@amp}}
+\addto\extrasgreek{\let\&\greek@amp}
+\addto\noextrasgreek{\let\&\ltx@amp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% What is left now is the definition of a set of macros to produce
+% the various digits.
+% \begin{macro}{\gr@num@i}
+% \begin{macro}{\gr@num@ii}
+% \begin{macro}{\gr@num@iii}
+% \changes{greek-1.2b}{1997/11/13}{No longer use \cs{\let} in the
+% expansion of the \cs{gr@num@x} macros as they ned to be
+% expandable}
+% As there is no representation for $0$ in this system the zeros
+% are simply discarded. When we have a large number with three
+% \emph{trailing} zero's also the numeric mark is discarded.
+% Therefore these macros need to pass the information to each other
+% about the (non-)translation of a zero.
+% \begin{macrocode}
+\def\gr@num@i#1{%
+ \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi
+ \ifnum#1=\z@\else\anw@true\fi\anw@print}
+\def\gr@num@ii#1{%
+ \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi
+ \ifnum#1=\z@\else\anw@true\fi\gr@num@i}
+\def\gr@num@iii#1{%
+ \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi
+ \ifnum#1=\z@\anw@false\else\anw@true\fi\gr@num@ii}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\gr@num@iv}
+% \begin{macro}{\gr@num@v}
+% \begin{macro}{\gr@num@vi}
+% The first three `digits' always have the numeric mark, except
+% when one is discarded because it's value is zero.
+% \begin{macrocode}
+\def\gr@num@iv#1{%
+ \ifnum#1=\z@\else\katwtonos\fi
+ \ifcase#1\or a\or b\or g\or d\or e\or \stigma\or z\or h\or j\fi
+ \gr@num@iii}
+\def\gr@num@v#1{%
+ \ifnum#1=\z@\else\katwtonos\fi
+ \ifcase#1\or i\or k\or l\or m\or n\or x\or o\or p\or \qoppa\fi
+ \gr@num@iv}
+\def\gr@num@vi#1{%
+ \katwtonos
+ \ifcase#1\or r\or sv\or t\or u\or f\or q\or y\or w\or \sampi\fi
+ \gr@num@v}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\greek@tilde}
+% \changes{greek-1.0c}{1997/02/19}{Added command}
+% In greek typesetting we need a number of characters with more
+% than one accent. In the underlying family of fonts (the
+% |cb| fonts) this is solved using Knuth's ligature
+% mechanism.
+% Characters we need to have ligatures with are the tilde, the
+% acute and grave accent characters, the rough and smooth breathings,
+% the subscript, and the double quote character.
+% In text input the |~| is normaly used to produce an
+% unbreakable space. The command |\~| normally produces a tilde
+% accent. For polytonic Greek we change the definition of |\~|
+% to produce the tilde character itself, making sure it has category
+% code 12.
+% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not
+% active during the definition of \cs{greek@tilde}}
+% \begin{macrocode}
+\begingroup
+ \@ifundefined{active@char\string!}{}{\catcode`!=12\relax}
+ \catcode`\~=12
+ \lccode`\!=`\~
+ \lowercase{\def\x{\endgroup
+ \def\greek@tilde{!}}\x}
+\addto\extraspolutonikogreek{%
+ \babel@save\~\let\~\greek@tilde}
+% \end{macrocode}
+% \end{macro}
+% In order to get correct hyphenation we need to set the lower case
+% code of a number of characters. The `v' character has a special
+% usage for the |cb| fonts: in fact this ligature mechanism detects
+% the end of a word and assures that a final sigma is typeset with
+% the proper sign wich is different from that of an initial or
+% medial sigma; the `v 'after an \textit{isolated} sigma fools
+% the ligature mechanism in order to typeset $\sigma$ in place of
+% $\varsigma$. Because of this we make sure its lowercase code is
+% not changed. For ``modern'' greek we have to deal only with |'|
+% and |"| and so things are easy.
+% \changes{greek-1.1c}{1997/04/30}{fixed two typos}
+% \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v}
+% \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are
+% now the definitions of ``Polutoniko'' Greek}
+% \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern''
+% greek}
+% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and
+% \cs{extraspolutonikogreek} should be complementary}
+% \begin{macrocode}
+\addto\extrasgreek{%
+ \babel@savevariable{\lccode`v}\lccode`v=`v%
+ \babel@savevariable{\lccode`\'}\lccode`\'=`\'%
+ \babel@savevariable{\lccode`\"}\lccode`\"=`\"}
+\addto\extraspolutonikogreek{%
+ \babel@savevariable{\lccode`\<}\lccode`\<=`\<%
+ \babel@savevariable{\lccode`\>}\lccode`\>=`\>%
+ \babel@savevariable{\lccode`\~}\lccode`\~=`\~%
+ \babel@savevariable{\lccode`\|}\lccode`\|=`\|%
+ \babel@savevariable{\lccode`\`}\lccode`\`=`\`}
+% \end{macrocode}
+% And in order to get rid of all accents and breathings when a
+% string is |\uppercase|d we also change a number of uppercase
+% codes.
+% \changes{greek-1.1b}{1997/03/06}{Added setting of \cs{uccode}s
+% (after \file{kdgreek.sty})}
+% \changes{greek-1.1e}{1997/10/12}{Added uppercase code for special
+% letter ``v''. Uppercase code for accents is now \texttt{9f},
+% instead of \texttt{ff}}
+% \changes{greek-1.2}{1997/10/28}{Added uppercase codes for ``modern''
+% Greek. The old codes are now for ``Polutoniko'' Greek}
+% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and
+% \cs{extraspolutonikogreek} should be complementary}
+% {\catcode`|=12\relax\gdef\indexbar{\cs{|}}}
+% \changes{greek-1.3g}{1999/11/17}{uc code of \indexbar{} is now just
+% \indexbar{} to reflect recent changes in the cb fonts}
+% \changes{greek-1.3i}{2000/10/02}{uc code of `v' is switched to V
+% so that mixed text appears correctly in headers.}
+% \changes{greek-1.3j}{2001/02/03}{Because other languages might
+% make the caret active, we can't use the double caret notation
+% here}
+% \begin{macrocode}
+\addto\extrasgreek{%
+ \babel@savevariable{\uccode`\"}\uccode`\"=`\"%
+ \babel@savevariable{\uccode`\'}\uccode`\'=159} %% 159 == ^^9f
+\addto\extraspolutonikogreek{%
+ \babel@savevariable{\uccode`\~}\uccode`\~=159%
+ \babel@savevariable{\uccode`\>}\uccode`\>=159%
+ \babel@savevariable{\uccode`\<}\uccode`\<=159%
+ \babel@savevariable{\uccode`\|}\uccode`\|=`\|%
+ \babel@savevariable{\uccode`\`}\uccode`\`=159}
+% \end{macrocode}
+% For this to work we make the character |^^9f| a shorthand that
+% expands to nothing. In order for this to work we need to make a
+% character look like |^^9f| in \TeX's eyes. The trick is to have
+% another character and assign it a different lowercase code. The
+% execute the macros needed in a |\lowercase| environment. Usually
+% the tile |~| character is used for such purposes. Before we do
+% this we save it's original lowercase code to restore it once
+% we're done.
+% \changes{greek-1.1b}{1997/03/06}{Added shorthand for \cs{char255}}
+% \changes{greek-1.1e}{1997/10/12}{Shorthand is changed. Active
+% character is now \cs{char159}}
+% \changes{greek-1.2a}{1997/10/31}{Need shorthand to exist for
+% ``monotoniko'' Greek, not ``polutoniko'' Greek}
+% \changes{greek-1.3j}{2001/02/03}{Ues the tilde as an alias for
+% character 159}
+% \begin{macrocode}
+\@tempcnta=\lccode`\~
+\lccode`\~=159
+\lowercase{%
+ \initiate@active@char{~}%
+ \declare@shorthand{greek}{~}{}}
+\lccode`\~=\@tempcnta
+% \end{macrocode}
+% We can also make the tilde character itself expand to a tilde with
+% category code 12 to make the typing of texts easier.
+% \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with
+% \cs{catcode 12}}
+% \begin{macrocode}
+\addto\extraspolutonikogreek{\languageshorthands{greek}}%
+\declare@shorthand{greek}{~}{\greek@tilde}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \changes{greek-1.1c}{1997/03/10}{Added a couple of symbols, needed
+% for \cs{greeknumeral}}
+% \changes{greek-1.1e}{1997/10/12}{Most symbols are removed and are
+% now defined in package grsymb}
+% \changes{greek-1.2c}{1998/06/26}{Package grsymb has been eliminated
+% because the CB fonts v2.0 do not inlcude certain symbols and so
+% the remaining symbol definitions have been moved here}
+% We now define a few symbols which are used in the typesetting of
+% greek numerals, as well as some other symbols which are usefull,
+% such as the $\epsilon\upsilon\rho\omega$ symbol, etc.
+% \begin{macrocode}
+\DeclareTextCommand{\anwtonos}{LGR}{\char"FE\relax}
+\DeclareTextCommand{\katwtonos}{LGR}{\char"FF\relax}
+\DeclareTextCommand{\qoppa}{LGR}{\char"12\relax}
+\DeclareTextCommand{\stigma}{LGR}{\char"06\relax}
+\DeclareTextCommand{\sampi}{LGR}{\char"1B\relax}
+\DeclareTextCommand{\Digamma}{LGR}{\char"C3\relax}
+\DeclareTextCommand{\ddigamma}{LGR}{\char"93\relax}
+\DeclareTextCommand{\vardigamma}{LGR}{\char"07\relax}
+\DeclareTextCommand{\euro}{LGR}{\char"18\relax}
+\DeclareTextCommand{\permill}{LGR}{\char"19\relax}
+% \end{macrocode}
+%
+% Since the |~| cannot be used to produce an unbreakable white
+% space we must redefine at least the commands |\fnum@figure| and
+% |\fnum@table| so they do not produce a |~| instead of white
+% space.
+% \changes{greek-1.3l}{2004/02/19}{Commented these lines out as this
+% change has made it into \LaTeX{} itself.}
+% \begin{macrocode}
+%\def\fnum@figure{\figurename\nobreakspace\thefigure}
+%\def\fnum@table{\tablename\nobreakspace\thetable}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{greek-1.0b}{1996/11/02}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{\CurrentOption}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/greek.fdd b/Master/texmf-dist/source/generic/babel/greek.fdd
new file mode 100644
index 00000000000..c567aa5d52c
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/greek.fdd
@@ -0,0 +1,349 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{105}
+%
+% \iffalse This is a META comment
+%
+%<*fdd>
+\ProvidesFile{greek.fdd}
+%</fdd>
+%
+%<LGRenc, >\ProvidesFile{lgrenc.def}
+%<LGRcmr, >\ProvidesFile{lgrcmr.fd}
+%<LGRcmro, >\ProvidesFile{lgrcmro.fd}
+%<LGRcmtt, >\ProvidesFile{lgrcmtt.fd}
+%<LGRcmss, >\ProvidesFile{lgrcmss.fd}
+%<LGRlcmss, >\ProvidesFile{lgrlcmss.fd}
+%<LGRlcmtt, >\ProvidesFile{lgrlcmtt.fd}
+ [2001/01/30 v2.2e %
+%<LGRenc, > Greek Encoding]
+%<LGRcmr, > Greek Computer Modern]
+%<LGRcmro, > Greek Computer Modern Outline]
+%<LGRcmtt, > Greek Computer Modern Typewriter]
+%<LGRcmss, > Greek Computer Modern Sans Serif]
+%<LGRlcmss, > Greek Computer Modern Sans Serif slide sizes]
+%<LGRlcmtt, > Greek Computer Modern Typewriter slide sizes]
+%<*fdd>
+]
+%</fdd>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{greek.fdd}
+\providecommand\dsc{\expandafter{\normalfont\scshape docstrip}}
+\title{The file \texttt{greek.fdd} for use with
+ \LaTeXe.\thanks{This file has version
+ number \fileversion, dated \filedate.}}
+\date{\filedate}
+\author{Claudio Beccari, Apostolos Syropoulos and Johannes Braams}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\begin{document}
+\maketitle
+\DocInput{greek.fdd}
+\end{document}
+%</driver>
+%
+%\fi
+%
+% \changes{greekfdd-2.0}{1997/10/12}{Changed to use Claudio Beccari's
+% fonts}
+% \changes{greekfdd-2.1}{1997/10/31}{Produce files with lowercase
+% names}
+% \changes{greekfdd-2.2}{1998/05/16}{Added support for CB fonts v2.xx}
+%
+% \section{Introduction}
+%
+% The file `greek.fdd' provides font definitions for typesetting
+% greek texts. This version of the file has been updated, since
+% now the official fonts for the \Lopt{greek} option of the
+% \textsf{babel} package are the |cb| fonts.
+%
+% \StopEventually{}
+%
+% \section{The \texttt{docstrip} modules}
+% The following modules are used to direct \texttt{docstrip} in
+% generating external files:
+% \begin{center}
+% \begin{tabular}{ll}
+% driver & produce a documentation driver file \\
+% LGRenc & The encoding definition file\\
+% LGRcmr & The Roman font shapes\\
+% LGRcmro & The Outline Roman font shapes\\
+% LGRcmss & The Sans Serif font shapes\\
+% LGRcmtt & The typewriter font shapes\\
+% LGRlcmss & The slide size Sans Serif font shapes\\
+% LGRlcmtt & The slide size typewriter fonts\\
+% \end{tabular}
+% \end{center}
+% A typical \dsc\ command file would then have entries like:
+%\begin{verbatim}
+%\generateFile{lgrcmr.fd}{t}{\from{greek.fdd}{fd,LGRcmr}}
+%\end{verbatim}
+%
+% \section{The encoding definition file}
+%
+% This file defines the fontencoding \texttt{LGR} for greek
+% text. Moreover, it provides the |\EC@family| macro, since the
+% Greek fonts have the same naming conventions as the Latin
+% ones produced by J\"{o}rg Knappen that are now the official
+% fonts of \LaTeXe. It also makes some definitions to ensure
+% that commands such as |\TeX|, |\copyright| give ``expected
+% results'' (\TeX, \copyright).
+%
+% \changes{greekfdd-2.1}{1997/10/31}{Removed some unwanted spaces}
+% \changes{greekfdd-2.2e}{2000/10/26}{Added more font sizes to make
+% the CB fonts compatible with the EC fonts}
+% \begin{macrocode}
+%<*fd>
+\providecommand{\EC@family}[5]{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}
+ {<5><6><7><8><9><10><10.95><12><14.4>%
+ <17.28><20.74><24.88><29.86><35.83>genb*#5}{}}
+%</fd>
+%<*LGRenc>
+\DeclareFontEncoding{LGR}{}{}
+\DeclareFontSubstitution{LGR}{cmr}{m}{n}
+\DeclareErrorFont{LGR}{cmr}{m}{n}{10}
+% \end{macrocode}
+% First we define a few commands in the \texttt{LGR} encoding.
+% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark}
+% misses a `t', \cs{copyright} should be \cs{textcopyright}}
+% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}}
+% \begin{macrocode}
+\ProvideTextCommand{\textcopyright}{LGR}{%
+ \textcircled{\textlatin{c}}}
+\ProvideTextCommand{\textregistered}{LGR}{%
+ \textcircled{\textlatin{\textsc r}}}
+\ProvideTextCommand{\texttrademark}{LGR}{%
+ \textsuperscript{\textlatin{TM}}}
+\ProvideTextCommand{\SS}{LGR}{%
+ \textlatin{SS}}
+%</LGRenc>
+% \end{macrocode}
+%
+% \section{The font definition files}
+%
+% In the previous release of the greek option we used
+% the \texttt{kd} family of fonts, which were made by
+% K.J.~Dryllerakis. Now, we have switched to the |cb| fonts by
+% Claudio Beccari, mainly because these fonts are complete, in any
+% sense of the word, and moreover fit nicely with the Computer
+% Modern font family.
+%
+% We begin with the definitions for the Greek Computer Modern fonts.
+%
+% \begin{macrocode}
+%<*LGRcmr>
+\DeclareFontFamily{LGR}{cmr}{}
+\EC@family{LGR}{cmr}{m}{n} {grmn}
+\EC@family{LGR}{cmr}{m}{sl} {grmo}
+\EC@family{LGR}{cmr}{m}{it} {grmi}
+\EC@family{LGR}{cmr}{m}{sc} {grmc}
+\EC@family{LGR}{cmr}{m}{ui} {grmu}
+\EC@family{LGR}{cmr}{bx}{sc} {grxc}
+\EC@family{LGR}{cmr}{bx}{n} {grxn}
+\EC@family{LGR}{cmr}{bx}{sl} {grxo}
+\EC@family{LGR}{cmr}{bx}{it} {grxi}
+\EC@family{LGR}{cmr}{bx}{ui} {grxu}
+\DeclareFontShape{LGR}{cmr}{b}{n}
+ {<->ssub*cmr/bx/n}{}
+\DeclareFontShape{LGR}{cmr}{b}{sc}
+ {<->ssub*cmr/bx/sc}{}
+%</LGRcmr>
+% \end{macrocode}
+%
+% The greek outline family is now complete with the same five
+% shapes and the two series as the roman family.
+% \changes{greekfdd-2.2b}{1999/04/03}{grmu should be gomu here...}
+% \begin{macrocode}
+%<*LGRcmro>
+\DeclareFontFamily{LGR}{cmro}{}
+\EC@family{LGR}{cmro}{m}{n} {gomn}
+\EC@family{LGR}{cmro}{m}{sl} {gomo}
+\EC@family{LGR}{cmro}{m}{it} {gomi}
+\EC@family{LGR}{cmro}{m}{sc} {gomc}
+\EC@family{LGR}{cmro}{m}{ui} {gomu}
+\EC@family{LGR}{cmro}{bx}{sc} {goxc}
+\EC@family{LGR}{cmro}{bx}{n} {goxn}
+\EC@family{LGR}{cmro}{bx}{sl} {goxo}
+\EC@family{LGR}{cmro}{bx}{it} {goxi}
+\EC@family{LGR}{cmro}{bx}{ui} {goxu}
+\DeclareFontShape{LGR}{cmro}{b}{n}
+ {<->ssub*cmro/bx/n}{}
+\DeclareFontShape{LGR}{cmro}{b}{sc}
+ {<->ssub*cmro/bx/sc}{}
+%</LGRcmro>
+% \end{macrocode}
+%
+% Then we have the \texttt{typewriter} fonts...
+%
+% \changes{greekfdd-2.1}{1997/10/31}{Set the \cs{hyphenchar} of the tt
+% font to $-1$}
+% \begin{macrocode}
+%<*LGRcmtt>
+\DeclareFontFamily{LGR}{cmtt}{\hyphenchar\font\m@ne}% \hyphenchar = -1
+\EC@family{LGR}{cmtt}{m}{n} {gttn}
+\EC@family{LGR}{cmtt}{m}{sl} {gtto}
+\EC@family{LGR}{cmtt}{m}{sc} {gttc}
+\EC@family{LGR}{cmtt}{m}{it} {gtti}
+\EC@family{LGR}{cmtt}{m}{ui} {gttu}
+\DeclareFontShape{LGR}{cmtt}{bx}{n}
+ {<->ssub*cmtt/m/n}{}
+\DeclareFontShape{LGR}{cmtt}{bx}{sl}
+ {<->ssub*cmtt/m/sl}{}
+\DeclareFontShape{LGR}{cmtt}{bx}{it}
+ {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{LGR}{cmtt}{bx}{sc}
+ {<->ssub*cmtt/m/sc}{}
+\DeclareFontShape{LGR}{cmtt}{bx}{ui}
+ {<->ssub*cmtt/m/ui}{}
+%</LGRcmtt>
+% \end{macrocode}
+%
+% Now we come to the Sans Serif font to be used in greek
+% texts.
+% \changes{greekfdd-2.2b}{1999/04/03}{the last two lines had m instead
+% of x in the fontname}
+% \begin{macrocode}
+%<*LGRcmss>
+\DeclareFontFamily{LGR}{cmss}{}
+\EC@family{LGR}{cmss}{m}{n} {gsmn}
+\EC@family{LGR}{cmss}{m}{sl} {gsmo}
+\EC@family{LGR}{cmss}{m}{sc} {gsmc}
+\EC@family{LGR}{cmss}{m}{it} {gsmi}
+\EC@family{LGR}{cmss}{m}{ui} {gsmu}
+\EC@family{LGR}{cmss}{bx}{n} {gsxn}
+\EC@family{LGR}{cmss}{bx}{sl} {gsxo}
+\EC@family{LGR}{cmss}{bx}{sc} {gsxc}
+\EC@family{LGR}{cmss}{bx}{it} {gsmi}
+\EC@family{LGR}{cmss}{bx}{ui} {gsmu}
+%</LGRcmss>
+% \end{macrocode}
+%
+% We have finished with the ``regular'' fonts. We now provide the fonts
+% definition files for the fonts used only in slides. First comes the
+% typewriter font.
+% \begin{macrocode}
+%<*LGRlcmtt>
+\DeclareFontFamily{LGR}{lcmtt}{\hyphenchar\font\m@ne}
+\DeclareFontShape{LGR}{lcmtt}{m}{n}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * gltn}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{In}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * gljn}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{it}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glto}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{Iit}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * gljo}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{sl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ ssub * lcmtt/m/it}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{Isl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ ssub * lcmtt/m/Iit}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{sc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * gltc}{}
+\DeclareFontShape{LGR}{lcmtt}{m}{Isc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * gljc}{}
+%</LGRlcmtt>
+% \end{macrocode}
+%
+% And then the Sans Serif font.
+% \begin{macrocode}
+%<*LGRlcmss>
+\DeclareFontFamily{LGR}{lcmss}{}
+\DeclareFontShape{LGR}{lcmss}{m}{n}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glmn}{}
+\DeclareFontShape{LGR}{lcmss}{m}{In}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glin}{}
+\DeclareFontShape{LGR}{lcmss}{m}{sl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glmo}{}
+\DeclareFontShape{LGR}{lcmss}{m}{Isl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glio}{}
+\DeclareFontShape{LGR}{lcmss}{m}{it}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glmi}{}
+\DeclareFontShape{LGR}{lcmss}{m}{Iit}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glii}{}
+\DeclareFontShape{LGR}{lcmss}{m}{ui}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glmu}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{n}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glxn}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{In}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glwn}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{sl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glxo}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{Isl}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glwo}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{it}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glxi}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{Iit}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glwi}{}
+\DeclareFontShape{LGR}{lcmss}{m}{sc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glmc}{}
+\DeclareFontShape{LGR}{lcmss}{m}{Isc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glic}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{sc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glxc}{}
+\DeclareFontShape{LGR}{lcmss}{bx}{Isc}{%
+ <7><8><10><12><13.82><16.59><19.91><23.89><28.66><34.4><41.28>
+ genb * glwc}{}
+%</LGRlcmss>
+% \end{macrocode}
+%
+% The next line goes into all files and in addition prevents \dsc{}
+% from adding any further code from the main source file (such as a
+% character table.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \Finale
+
+
diff --git a/Master/texmf-dist/source/generic/babel/greek.ins b/Master/texmf-dist/source/generic/babel/greek.ins
new file mode 100644
index 00000000000..a641719f93a
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/greek.ins
@@ -0,0 +1,158 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/03/15}
+\def\batchfile{greek.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{greek.ldf}{\from{greek.dtx}{code}}
+ \file{athnum.sty}{\from{athnum.dtx}{package}}
+ \file{grmath.sty}{\from{grmath.dtx}{package}}
+ }
+\usepreamble\fdpreamble
+\generate{\file{lgrenc.def}{\from{greek.fdd}{LGRenc}}
+ \file{lgrcmr.fd}{\from{greek.fdd}{fd,LGRcmr}}
+ \file{lgrcmro.fd}{\from{greek.fdd}{fd,LGRcmro}}
+ \file{lgrcmtt.fd}{\from{greek.fdd}{fd,LGRcmtt}}
+ \file{lgrcmss.fd}{\from{greek.fdd}{fd,LGRcmss}}
+ \file{lgrlcmtt.fd}{\from{greek.fdd}{fd,LGRlcmtt}}
+ \file{lgrlcmss.fd}{\from{greek.fdd}{fd,LGRlcmss}}
+ }
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/grmath.dtx b/Master/texmf-dist/source/generic/babel/grmath.dtx
new file mode 100644
index 00000000000..be42c48545a
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/grmath.dtx
@@ -0,0 +1,168 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+%% \CheckSum{126}
+%
+%\iffalse
+%
+%% This is file `grmath.sty'
+%% (c) 1997-2005 Apostolos Syropoulos.
+%% All rights reserved.
+% You are allowed to modify this file as long the initial copyright notice
+% appears in the modified file.
+%
+% Please report errors or suggestions for improvement to
+%
+% Apostolos Syropoulos
+% 366, 28th October Str.
+% GR-671 00 Xanthi, GREECE
+%
+% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
+%
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{grmath.drv}
+\begin{document}
+ \DocInput{grmath.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%\fi
+%
+% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog''
+% (default) and ``enlog'' that create Greek and Latin names
+% log functions}
+%
+% \title{Greek log-like Operators}
+% \author{Apostolos Syropoulos\\
+% 366, 28th October Str.\\
+% GR-671 00 Xanthi, HELLAS\\
+% E-mail: \texttt{apostolo@platon.ee.duth.gr}}
+% \date{2001/02/12}
+% \maketitle
+%
+% \MakeShortVerb{|}
+% \section{What is this all about?}
+%
+% In Greece, until recently, it was common practice to write down most
+% log-like functions as abbreviations of their Greek names. Consequently,
+% high school students and even university freshmen were not familiar with
+% the Latin names employed in international literature. However, this practice
+% is fading away in universities but it is still in wide use in books for
+% high schools, mainly because the Latin names would produce nothing but
+% confusion. The package |grmath| redefines most log-like definitions
+% so that they produce the Greek name, instead of the Latin one. The package
+% can be used only in conjunction with the |greek| option of the |babel|
+% package. The new option |enlog| allows one to keep the Latin names for
+% the log functions.
+% \StopEventually
+%
+% \section{The Implementation}
+%
+% As usual we must first identify ourselves.
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{grmath}[2001/02/12\space v1.2]
+\typeout{Package: `grmath' v1.2\space <2001/02/12> (A. Syropoulos)}
+% \end{macrocode}
+%
+% The next thing we do is to process the options. The default option
+% ``grlog'' generates Greek names for log functions and the ``enlog''
+% option generates Latin names for log functions.
+% \begin{macrocode}
+\DeclareOption{grlog}{%
+ \def\log{\mathop{\mathgroup\symgroperators log_{10}}\nolimits}
+ \def\ln{\mathop{\mathgroup\symgroperators log_%
+ {\mathgroup\symoperators e}}\nolimits}
+}
+\DeclareOption{enlog}{%
+ \def\log{\mathop{\operator@font log}\nolimits}
+ \def\ln{\mathop{\operator@font ln}\nolimits}
+}
+\ExecuteOptions{grlog}
+\ProcessOptions
+% \end{macrocode}
+%
+% Now we check to see if the |babel| package is loaded with at least
+% the |greek| option. In case it isn't, we opt to produce an error message.
+% \begin{macrocode}
+\@ifpackagewith{babel}{greek}{}{%
+ \@ifpackagewith{babel}{polutonikogreek}{}{%
+ \PackageError{grmath}{%
+ `greek' option of the `babel'\MessageBreak
+ package hasn't been loaded}{%
+ The commands provided by this package\MessageBreak
+ are specially designed for greek language\MessageBreak
+ typesetting with the `babel' package. Load\MessageBreak
+ it with at least the `greek' option.}\relax
+ }}
+% \end{macrocode}
+%
+% We define the mathematical font which will be used to typeset
+% the log-like functions.
+% \begin{macrocode}
+\DeclareSymbolFont{groperators}{LGR}{cmr}{m}{n}
+\SetSymbolFont{groperators}{bold}{LGR}{cmr}{bx}{n}
+% \end{macrocode}
+%
+% We are now ready to proceed with the redefinitions of the log-like
+% operator names.
+% \begin{macrocode}
+\def\sin{\mathop{\mathgroup\symgroperators hm}\nolimits}
+\def\cos{\mathop{\mathgroup\symgroperators sun}\nolimits}
+\def\tan{\mathop{\mathgroup\symgroperators ef}\nolimits}
+\def\arcsin{\mathop{\mathgroup\symgroperators toxhm}\nolimits}
+\def\arccos{\mathop{\mathgroup\symgroperators toxsun}\nolimits}
+\def\arctan{\mathop{\mathgroup\symgroperators toxef}\nolimits}
+\def\cot{\mathop{\mathgroup\symgroperators sf}\nolimits}
+\def\sec{\mathop{\mathgroup\symgroperators tem}\nolimits}
+\def\csc{\mathop{\mathgroup\symgroperators stem}\nolimits}
+\def\gcd{\mathop{\mathgroup\symgroperators MKD}\nolimits}
+% \end{macrocode}
+% In the standard \LaTeX\ distribution there is no provision for a
+% Least Common Multiple (lcm) log-like operator. Since, this operator
+% appears quite often in greek literature we opt to include it. Moreover,
+% we include three more log-like functions: |\arccot|, |\arcsec| and
+% |\arccsc|.
+% \begin{macrocode}
+\def\lcm{\mathop{\mathgroup\symgroperators EKP}\nolimits}
+\def\arccot{\mathop{\mathgroup\symgroperators toxsf}\nolimits}
+\def\arcsec{\mathop{\mathgroup\symgroperators toxtem}\nolimits}
+\def\arccsc{\mathop{\mathgroup\symgroperators toxstem}\nolimits}
+%</package>
+% \end{macrocode}
+%
+% \section*{Dedication}
+% I would like to dedicate this piece of work to my son
+% \begin{center}Demetrios-Georgios.\end{center}
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/grsymb.dtx b/Master/texmf-dist/source/generic/babel/grsymb.dtx
new file mode 100644
index 00000000000..ef783fbd48d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/grsymb.dtx
@@ -0,0 +1,131 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+%% \CheckSum{55}
+%
+%\iffalse
+%
+%% This is file `grsymb.sty'
+%% (c) 1997-2005 Apostolos Syropoulos.
+%% All rights reserved.
+% You are allowed to modify this file as long the initial copyright notice
+% appears in the modified file.
+%
+% Please report errors or suggestions for improvement to
+%
+% Apostolos Syropoulos
+% 366, 28th October Str.
+% GR-671 00 Xanthi, GREECE
+%
+% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
+%
+%\fi
+%\iffalse
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{grsymb.drv}
+\begin{document}
+ \DocInput{grsymb.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%\fi
+%
+% \title{Greek Symbols}
+% \author{Apostolos Syropoulos\\
+% 366, 28th October Str.\\
+% GR-671 00 Xanthi, HELLAS\\
+% E-mail: \texttt{apostolo@platon.ee.duth.gr}}
+% \date{1997/09/21}
+% \maketitle
+%
+% \MakeShortVerb{|}
+% \section{Introduction}
+%
+% There are certain symbols which were in use in ancient Greece and which
+% are of use to scholars even today. These symbols are various forms of
+% qoppa and stigma, and the letter digamma. These special symbols are
+% provided by the \texttt{cb} fonts which are now the official fonts for
+% the \texttt{greek} option of the \texttt{babel} package. Moreover, these
+% fonts provide a few more symbols such as a symbol for Euro, etc. The `tao'
+% symbol although is not a greek symbol, survives mainly for reasons of
+% compatibility. This little package provides access commands for these
+% symbols. The package can be used only in conjunction with the |greek|
+% option of the |babel| package.
+%
+% \StopEventually
+%
+% \section{The Implementation}
+%
+% First comes the identification part.
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{grsymb}[1997/09/21\space v1.0]
+\typeout{Package: `grsymb' v1.0\space <1997/09/21> (A. Syropoulos)}
+% \end{macrocode}
+%
+% Next we check to see if the |babel| package is loaded with at least
+% the |greek| option. In case it isn't, we opt to produce an error message.
+% \begin{macrocode}
+\@ifpackagewith{babel}{greek}{}{%
+ \PackageError{grsymb}{%
+ `greek' option of the `babel'\MessageBreak
+ package hasn't been loaded}{%
+ The commands provided by this package\MessageBreak
+ are specially designed for greek language\MessageBreak
+ typesetting with the `babel' package. Load\MessageBreak
+ it with at least the `greek' option.}\relax
+ }
+% \end{macrocode}
+% Now, we proceed with the definitions of the various symbols. Please note
+% that |\ddigamma| is intensionally spelled erroneously, in order to avoid
+% conflicts with the command |\digamma| that is defined by the package
+% |amssymb|. Although the tao symbol is not a greek symbol, it is included
+% mainly for reasons of compatibility.
+% \begin{macrocode}
+\DeclareTextCommand{\Digamma}{LGR}{\char"C3\relax}
+\DeclareTextCommand{\ddigamma}{LGR}{\char"93\relax}
+\DeclareTextCommand{\tao}{LGR}{\char"01\relax}
+\DeclareTextCommand{\Qoppa}{LGR}{\char"14\relax}
+\DeclareTextCommand{\varqoppa}{LGR}{\char"13\relax}
+\DeclareTextCommand{\Sampi}{LGR}{\char"1A\relax}
+\DeclareTextCommand{\vardigamma}{LGR}{\char"07\relax}
+\DeclareTextCommand{\Stigma}{LGR}{\char"08\relax}
+\DeclareTextCommand{\VarQoppa}{LGR}{\char"15\relax}
+\DeclareTextCommand{\euro}{LGR}{\char"18\relax}
+\DeclareTextCommand{\permill}{LGR}{\char"19\relax}
+%</package>
+% \end{macrocode}
+%
+% \section*{Dedication}
+% I would like to dedicate this piece of work to my son
+% \begin{center}Demetrios-Georgios.\end{center}
+% \Finale
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/generic/babel/heb209.dtx b/Master/texmf-dist/source/generic/babel/heb209.dtx
new file mode 100644
index 00000000000..69101ca7660
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/heb209.dtx
@@ -0,0 +1,165 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{8}
+%
+% \iffalse meta-comment
+%% File `heb209.dtx' - obsolete LaTeX 2.09 compatible style files.
+%% Copyright (C) 1997 -- 2004 Boris Lavva.
+%
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2004 by Johannes Braams,
+%% TeXniek
+%% All rights reserved.
+%\fi
+% \providecommand\dst{\textsc{docstrip}}
+% \providecommand\babel{\textsf{babel}}
+% \GetFileInfo{heb209.dtx}
+%
+% \changes{heb209~1.0a}{1998/01/06}{%
+% Initial version. Provides hebrew\_newcode, hebrew\_oldcode and
+% hebrew\_p style files for \LaTeX~2.09 (by Boris Lavva)}
+%
+% \section{Hebrew in \LaTeX~2.09 compatibility mode}\label{sec:heb209}
+%
+% |\documentstyle| command in the preamble of \LaTeX\ document
+% indicates that it is a \LaTeX~2.09 document, and should be processed
+% in \emph{compatibility mode}. In such documents, one of the following
+% three Hebrew style options can be included:
+% \begin{enumerate}
+% \item \texttt{hebrew\_newcode} indicates that document will use UNIX
+% ISO 8859-8 or Windows cp1255 input encoding, i.e.\ \emph{Alef}
+% letter will be represented as 224.
+% \item \texttt{hebrew\_p} indicates that document is encoded with IBM
+% PC cp862 encoding, i.e.\ \emph{Alef} letter will be represented as
+% 128.
+% \item \texttt{hebrew\_oldcode} indicates that document uses old 7-bit
+% encoding, as defined in Israeli Standard 960, i.e.\ \emph{Alef} is
+% character number 96.
+% \end{enumerate}
+% Note, that other hebrew-related styles, such as \texttt{hebcal} can
+% be included \emph{after} the abovenamed Hebrew style option, for
+% example:
+% \begin{quote}
+% |\documentstyle[12pt,hebrew_p,hebcal]{report}|.
+% \end{quote}
+%
+% Any Hebrew document which compiled under \LaTeX~2.09 should compile
+% under compatibility mode, unless it uses low-level commands such as
+% |\tenrm|.
+%
+% \subsection{The {\normalfont\dst{}} modules}
+%
+% The following modules are used in the implementation to direct
+% \dst{} in generating the external files:
+% \begin{center}
+% \begin{tabular}{ll}
+% newcode & produce \texttt{hebrew\_newcode.sty} \\
+% pccode & produce \texttt{hebrew\_p.sty} \\
+% oldcode & produce \texttt{hebrew\_oldcode.sty}
+% \end{tabular}
+% \end{center}
+%
+% \StopEventually{}
+%
+% \iffalse
+% \subsection{A driver for this document}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you
+% are currently reading. It will be extracted from this file by
+% the \dst{} program.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\title{Hebrew \LaTeX~2.09 compatibility style files}
+\author{Boris Lavva}
+\date{Printed \today}
+\begin{document}
+ \maketitle
+ \DocInput{heb209.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \subsection{Obsolete style files}
+%
+% For each of the Hebrew \LaTeX~2.09 Hebrew styles, we produce a
+% file which uses correct input encoding and calls \babel\ with
+% Hebrew and English language options.
+% This means that any styles which say |\input hebrew_newcode.sty|
+% or |\documentstyle[|\ldots|hebrew_newcode|\ldots|]{|\ldots|}|
+% should still work.
+%
+% \begin{macrocode}
+%<*newcode|pccode|oldcode>
+\NeedsTeXFormat{LaTeX2e}
+%</newcode|pccode|oldcode>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*newcode>
+\@obsoletefile{hebrew.sty}{hebrew_newcode.sty}
+\RequirePackage[8859-8]{inputenc}
+%</newcode>
+%<*pccode>
+\@obsoletefile{hebrew.sty}{hebrew_p.sty}
+\RequirePackage[cp862]{inputenc}
+%</pccode>
+%<*oldcode>
+\@obsoletefile{hebrew.sty}{hebrew_oldcode.sty}
+\RequirePackage[si960]{inputenc}
+%</oldcode>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*newcode|pccode|oldcode>
+\RequirePackage[english,hebrew]{babel}
+%</newcode|pccode|oldcode>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/hebinp.dtx b/Master/texmf-dist/source/generic/babel/hebinp.dtx
new file mode 100644
index 00000000000..a6a9d60c394
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/hebinp.dtx
@@ -0,0 +1,550 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{446}
+%
+% \iffalse
+%<si960> \ProvidesFile{si960.def}
+%<8859-8> \ProvidesFile{8859-8.def}
+%<cp862> \ProvidesFile{cp862.def}
+%<cp1255> \ProvidesFile{cp1255.def}
+%<*driver>
+\ProvidesFile{hebinp.drv}
+%</driver>
+% \fi
+% \ProvidesFile{hebinp.dtx}
+ [2004/02/20 v1.1b Hebrew input encoding file]
+% \iffalse meta-comment
+%% File `hebinp.dtx' for installing the input hebrew encodings.
+%% Copyright (C) 1997 -- 2005 Boris Lavva.
+%
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% All rights reserved.
+% \fi
+%
+% \providecommand\dst{\textsc{docstrip}}
+% \GetFileInfo{hebinp.dtx}
+%
+% \changes{hebinp~1.0a}{1997/12/07}{%
+% Initial version. Provides 8859-8, cp862, cp1255, and old 7-bit
+% input encodings (by Boris Lavva)}
+% \changes{hebinp~1.1}{2001/02/27}{%
+% Renamed hebrew letters: \cs{alef} to \cs{hebalef} etc.
+% (by Tzafrir Cohen)}
+% \changes{hebinp~1.1a}{2001/07/22}{%
+% Renamed CP1255 nikud \cs{patah} to \cs{hebpatah etc}.
+% Added the macro \cs{DisableNikud} - may not be a good idea
+% (by Tzafrir Cohen)}
+%
+% \section{Hebrew input encodings}\label{sec:hebinp}
+%
+% Hebrew input encodings defined in file |hebinp.dtx|\footnote{The
+% files described in this section have version number \fileversion\
+% and were last revised on \filedate.} should be used with |inputenc|
+% \LaTeXe{} package. This package allows the user
+% to specify an input encoding from this file (for example, ISO
+% Hebrew/Latin 8859-8, IBM Hebrew codepage 862 or MS Windows
+% Hebrew codepage 1255) by saying:
+% \begin{quote}
+% |\usepackage[|\emph{encoding name}|]{inputenc}|
+% \end{quote}
+% The encoding can also be selected in the document with:
+% \begin{quote}
+% |\inputencoding{|\emph{encoding name}|}|
+% \end{quote}
+% The only practical use of this command within a document is when
+% using text from several documents to build up a composite work such
+% as a volume of journal articles. Therefore this command will be
+% used only in vertical mode.
+%
+% The encodings provided by this package are:
+% \begin{itemize}
+% \item |si960| 7-bit Hebrew encoding for the range 32--127. This
+% encoding also known as ``old-code'' and defined by Israeli
+% Standard SI-960.
+% \item |8859-8| ISO 8859-8 Hebrew/Latin encoding commonly used in
+% UNIX systems. This encoding also known as ``new-code'' and
+% includes hebrew letters in positions starting from 224.
+% \item |cp862| IBM 862 code page commonly used by DOS on
+% IBM-compatible personal computers. This encoding also known as
+% ``pc-code'' and includes hebrew letters in positions starting
+% from 128.
+% \item |cp1255| MS Windows 1255 (hebrew) code page which is similar to
+% 8859-8. In addition to hebrew letters, this encoding contains
+% also hebrew vowels and dots (nikud).
+% \end{itemize}
+% Each encoding has an associated |.def| file, for example
+% |8859-8.def| which defines the behaviour of each input character,
+% using the commands:
+% \begin{quote}
+% |\DeclareInputText{|\emph{slot}|}{|\emph{text}|}| \\
+% |\DeclareInputMath{|\emph{slot}|}{|\emph{math}|}|
+% \end{quote}
+% This defines the input character \emph{slot} to be the
+% \emph{text} material or \emph{math} material respectively.
+% For example, |8859-8.def| defines slots |"EA| (letter hebalef)
+% and |"B5| ($\mu$) by saying:
+%\begin{verbatim}
+% \DeclareInputText{224}{\hebalef}
+% \DeclareInputMath{181}{\mu}
+%\end{verbatim}
+% Note that the \emph{commands} should be robust, and should not be
+% dependent on the output encoding. The same \emph{slot} should not
+% have both a text and a math declaration for it. (This restriction
+% may be removed in future releases of inputenc).
+%
+% The |.def| file may also define commands using the declarations:\\
+% |\providecommand| or |\ProvideTextCommandDefault|.
+% For example, |8859-8.def| defines:
+%\begin{verbatim}
+% \ProvideTextCommandDefault{\textonequarter}{\ensuremath{\frac14}}
+% \DeclareInputText{188}{\textonequarter}
+%\end{verbatim}
+% The use of the `provide' forms here will ensure that a
+% better definition will not be over-written; their use is
+% recommended since, in general, the best defintion depends on the
+% fonts available.
+%
+% See the documentation in |inputenc.dtx| for details of how to
+% declare input definitions for various encodings.
+%
+% \StopEventually{}
+%
+% \iffalse
+% \subsection{A driver for this document}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you
+% are currently reading. It will be extracted from this file by
+% the \dst{} program.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\title{Hebrew input encodings for use with \LaTeXe}
+\author{Boris Lavva}
+\date{Printed \today}
+\begin{document}
+ \maketitle
+ \DocInput{hebinp.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \subsection{Default definitions for characters}
+%
+% First, we insert a |\makeatletter| at the beginning of all |.def|
+% files to use |@| symbol in the macros' names.
+% \begin{macrocode}
+%<-driver>\makeatletter
+% \end{macrocode}
+%
+% Some input characters map to internal functions which are not in
+% either the |T1| or |OT1| font encoding. For this reason default
+% definitions are provided in the encoding file: these will be
+% used unless some other output encoding is used which supports
+% those glyphs. In some cases this default defintion has to be
+% simply an error message.
+%
+% Note that this works reasonably well only because the encoding
+% files for both |OT1| and |T1| are loaded in the standard LaTeX
+% format.
+%
+% \begin{macrocode}
+%<*8859-8|cp862|cp1255>
+\ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}
+\ProvideTextCommandDefault{\textonehalf}{\ensuremath{\frac12}}
+\ProvideTextCommandDefault{\textonequarter}{\ensuremath{\frac14}}
+%</8859-8|cp862|cp1255>
+%<*8859-8|cp1255>
+\ProvideTextCommandDefault{\textthreequarters}{\ensuremath{\frac34}}
+%</8859-8|cp1255>
+%<*cp862|cp1255>
+\ProvideTextCommandDefault{\textflorin}{\textit{f}}
+%</cp862|cp1255>
+%<*cp862>
+\ProvideTextCommandDefault{\textpeseta}{Pt}
+%</cp862>
+% \end{macrocode}
+%
+% The name |\textblacksquare| is derived from the AMS symbol name
+% since Adobe seem not to want this symbol. The default
+% definition, as a rule, makes no claim to being a good design.
+% \begin{macrocode}
+%<*cp862>
+\ProvideTextCommandDefault{\textblacksquare}
+ {\vrule \@width .3em \@height .4em \@depth -.1em\relax}
+%</cp862>
+% \end{macrocode}
+%
+% Some commands can't be faked, so we have them generate an error
+% message.
+% \begin{macrocode}
+%<*8859-8|cp862|cp1255>
+\ProvideTextCommandDefault{\textcent}
+ {\TextSymbolUnavailable\textcent}
+\ProvideTextCommandDefault{\textyen}
+ {\TextSymbolUnavailable\textyen}
+%</8859-8|cp862|cp1255>
+%<*8859-8>
+\ProvideTextCommandDefault{\textcurrency}
+ {\TextSymbolUnavailable\textcurrency}
+%</8859-8>
+%<*cp1255>
+\ProvideTextCommandDefault{\newsheqel}
+ {\TextSymbolUnavailable\newsheqel}
+%</cp1255>
+%<*8859-8|cp1255>
+\ProvideTextCommandDefault{\textbrokenbar}
+ {\TextSymbolUnavailable\textbrokenbar}
+%</8859-8|cp1255>
+%<*cp1255>
+\ProvideTextCommandDefault{\textperthousand}
+ {\TextSymbolUnavailable\textperthousand}
+%</cp1255>
+% \end{macrocode}
+%
+% Characters that are supposed to be used only in math will be defined
+% by |\providecommand| because \LaTeXe{} assumes that the font
+% encoding for math fonts is static.
+% \begin{macrocode}
+%<*8859-8|cp1255>
+\providecommand{\mathonesuperior}{{^1}}
+\providecommand{\maththreesuperior}{{^3}}
+%</8859-8|cp1255>
+%<*8859-8|cp862|cp1255>
+\providecommand{\mathtwosuperior}{{^2}}
+%</8859-8|cp862|cp1255>
+%<*cp862>
+\providecommand{\mathordmasculine}{{^o}}
+\providecommand{\mathordfeminine}{{^a}}
+%</cp862>
+% \end{macrocode}
+%
+% \subsection{The SI-960 encoding}
+%
+%% The SI-960 or ``old-code'' encoding only allows characters in the
+%% range 32--127, so we only need to provide an empty |si960.def| file.
+%
+% \subsection{The ISO 8859-8 encoding and the MS Windows cp1255 encoding}
+%
+% The |8859-8.def| encoding file defines the characters in the ISO
+% 8859-8 encoding.
+%
+% The MS Windows Hebrew character set incorporates the Hebrew
+% letter repertoire of ISO 8859-8, and uses the same code points
+% (starting from 224). It has also some important additions in the
+% 128--159 and 190--224 ranges.
+%
+% \begin{macrocode}
+%<*cp1255>
+\DeclareInputText{130}{\quotesinglbase}
+\DeclareInputText{131}{\textflorin}
+\DeclareInputText{132}{\quotedblbase}
+\DeclareInputText{133}{\dots}
+\DeclareInputText{134}{\dag}
+\DeclareInputText{135}{\ddag}
+\DeclareInputText{136}{\^{}}
+\DeclareInputText{137}{\textperthousand}
+\DeclareInputText{139}{\guilsinglleft}
+\DeclareInputText{145}{\textquoteleft}
+\DeclareInputText{146}{\textquoteright}
+\DeclareInputText{147}{\textquotedblleft}
+\DeclareInputText{148}{\textquotedblright}
+\DeclareInputText{149}{\textbullet}
+\DeclareInputText{150}{\textendash}
+\DeclareInputText{151}{\textemdash}
+\DeclareInputText{152}{\~{}}
+\DeclareInputText{153}{\texttrademark}
+\DeclareInputText{155}{\guilsinglright}
+%</cp1255>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*8859-8|cp1255>
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\pounds}
+%<+8859-8>\DeclareInputText{164}{\textcurrency}
+%<+cp1255>\DeclareInputText{164}{\newsheqel}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\S}
+\DeclareInputText{168}{\"{}}
+\DeclareInputText{169}{\textcopyright}
+%<+8859-8>\DeclareInputMath{170}{\times}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputMath{172}{\lnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\@tabacckludge={}}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputMath{177}{\pm}
+\DeclareInputMath{178}{\mathtwosuperior}
+\DeclareInputMath{179}{\maththreesuperior}
+\DeclareInputText{180}{\@tabacckludge'{}}
+\DeclareInputMath{181}{\mu}
+\DeclareInputText{182}{\P}
+\DeclareInputText{183}{\textperiodcentered}
+%<+8859-8>\DeclareInputText{184}{\c\ }
+\DeclareInputMath{185}{\mathonesuperior}
+%<+8859-8>\DeclareInputMath{186}{\div}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+%</8859-8|cp1255>
+% \end{macrocode}
+%
+% Hebrew vowels and dots (nikud) are included only to MS Windows cp1255
+% page and start from the position 192.
+% \begin{macrocode}
+%<*cp1255>
+\DeclareInputText{192}{\hebsheva}
+\DeclareInputText{193}{\hebhatafsegol}
+\DeclareInputText{194}{\hebhatafpatah}
+\DeclareInputText{195}{\hebhatafqamats}
+\DeclareInputText{196}{\hebhiriq}
+\DeclareInputText{197}{\hebtsere}
+\DeclareInputText{198}{\hebsegol}
+\DeclareInputText{199}{\hebpatah}
+\DeclareInputText{200}{\hebqamats}
+\DeclareInputText{201}{\hebholam}
+\DeclareInputText{203}{\hebqubuts}
+\DeclareInputText{204}{\hebdagesh}
+\DeclareInputText{205}{\hebmeteg}
+\DeclareInputText{206}{\hebmaqaf}
+\DeclareInputText{207}{\hebrafe}
+\DeclareInputText{208}{\hebpaseq}
+\DeclareInputText{209}{\hebshindot}
+\DeclareInputText{210}{\hebsindot}
+\DeclareInputText{211}{\hebsofpasuq}
+\DeclareInputText{212}{\hebdoublevav}
+\DeclareInputText{213}{\hebvavyod}
+\DeclareInputText{214}{\hebdoubleyod}
+%</cp1255>
+% \end{macrocode}
+%
+% Hebrew letters start from the position 224 in both encodings.
+% \begin{macrocode}
+%<*8859-8|cp1255>
+\DeclareInputText{224}{\hebalef}
+\DeclareInputText{225}{\hebbet}
+\DeclareInputText{226}{\hebgimel}
+\DeclareInputText{227}{\hebdalet}
+\DeclareInputText{228}{\hebhe}
+\DeclareInputText{229}{\hebvav}
+\DeclareInputText{230}{\hebzayin}
+\DeclareInputText{231}{\hebhet}
+\DeclareInputText{232}{\hebtet}
+\DeclareInputText{233}{\hebyod}
+\DeclareInputText{234}{\hebfinalkaf}
+\DeclareInputText{235}{\hebkaf}
+\DeclareInputText{236}{\heblamed}
+\DeclareInputText{237}{\hebfinalmem}
+\DeclareInputText{238}{\hebmem}
+\DeclareInputText{239}{\hebfinalnun}
+\DeclareInputText{240}{\hebnun}
+\DeclareInputText{241}{\hebsamekh}
+\DeclareInputText{242}{\hebayin}
+\DeclareInputText{243}{\hebfinalpe}
+\DeclareInputText{244}{\hebpe}
+\DeclareInputText{245}{\hebfinaltsadi}
+\DeclareInputText{246}{\hebtsadi}
+\DeclareInputText{247}{\hebqof}
+\DeclareInputText{248}{\hebresh}
+\DeclareInputText{249}{\hebshin}
+\DeclareInputText{250}{\hebtav}
+%</8859-8|cp1255>
+% \end{macrocode}
+%
+% Special symbols which define the direction of symbols explicitly.
+% Currently, they are not used in \LaTeX.
+% \begin{macrocode}
+%<*cp1255>
+\DeclareInputText{253}{\lefttorightmark}
+\DeclareInputText{254}{\righttoleftmark}
+%</cp1255>
+% \end{macrocode}
+%
+% \subsection{The IBM code page 862}
+%
+% The |cp862.def| encoding file defines the characters in the IBM
+% codepage 862 encoding. The DOS graphics `letters' and a few
+% other positions are ignored (left undefined).
+%
+% Hebrew letters start from the position 128.
+% \begin{macrocode}
+%<*cp862>
+\DeclareInputText{128}{\hebalef}
+\DeclareInputText{129}{\hebbet}
+\DeclareInputText{130}{\hebgimel}
+\DeclareInputText{131}{\hebdalet}
+\DeclareInputText{132}{\hebhe}
+\DeclareInputText{133}{\hebvav}
+\DeclareInputText{134}{\hebzayin}
+\DeclareInputText{135}{\hebhet}
+\DeclareInputText{136}{\hebtet}
+\DeclareInputText{137}{\hebyod}
+\DeclareInputText{138}{\hebfinalkaf}
+\DeclareInputText{139}{\hebkaf}
+\DeclareInputText{140}{\heblamed}
+\DeclareInputText{141}{\hebfinalmem}
+\DeclareInputText{142}{\hebmem}
+\DeclareInputText{143}{\hebfinalnun}
+\DeclareInputText{144}{\hebnun}
+\DeclareInputText{145}{\hebsamekh}
+\DeclareInputText{146}{\hebayin}
+\DeclareInputText{147}{\hebfinalpe}
+\DeclareInputText{148}{\hebpe}
+\DeclareInputText{149}{\hebfinaltsadi}
+\DeclareInputText{150}{\hebtsadi}
+\DeclareInputText{151}{\hebqof}
+\DeclareInputText{152}{\hebresh}
+\DeclareInputText{153}{\hebshin}
+\DeclareInputText{154}{\hebtav}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareInputText{155}{\textcent}
+\DeclareInputText{156}{\pounds}
+\DeclareInputText{157}{\textyen}
+\DeclareInputText{158}{\textpeseta}
+\DeclareInputText{159}{\textflorin}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\~n}
+\DeclareInputText{165}{\~N}
+\DeclareInputMath{166}{\mathordfeminine}
+\DeclareInputMath{167}{\mathordmasculine}
+\DeclareInputText{168}{\textquestiondown}
+\DeclareInputMath{170}{\lnot}
+\DeclareInputText{171}{\textonehalf}
+\DeclareInputText{172}{\textonequarter}
+\DeclareInputText{173}{\textexclamdown}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\guillemotright}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareInputMath{224}{\alpha}
+\DeclareInputText{225}{\ss}
+\DeclareInputMath{226}{\Gamma}
+\DeclareInputMath{227}{\pi}
+\DeclareInputMath{228}{\Sigma}
+\DeclareInputMath{229}{\sigma}
+\DeclareInputMath{230}{\mu}
+\DeclareInputMath{231}{\tau}
+\DeclareInputMath{232}{\Phi}
+\DeclareInputMath{233}{\Theta}
+\DeclareInputMath{234}{\Omega}
+\DeclareInputMath{235}{\delta}
+\DeclareInputMath{236}{\infty}
+\DeclareInputMath{237}{\phi}
+\DeclareInputMath{238}{\varepsilon}
+\DeclareInputMath{239}{\cap}
+\DeclareInputMath{240}{\equiv}
+\DeclareInputMath{241}{\pm}
+\DeclareInputMath{242}{\ge}
+\DeclareInputMath{243}{\le}
+\DeclareInputMath{246}{\div}
+\DeclareInputMath{247}{\approx}
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textperiodcentered}
+\DeclareInputText{250}{\textbullet}
+\DeclareInputMath{251}{\surd}
+\DeclareInputMath{252}{\mathnsuperior}
+\DeclareInputMath{253}{\mathtwosuperior}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp862>
+% \end{macrocode}
+%
+% \begin{macro}{\DisableNikud}
+% A utility macro to ignore any nikud character that may appear in the
+% input. This allows you to ignore cp1255 nikud characters that happened to
+% appear in the input.
+% \end{macro}
+% \begin{macrocode}
+%<*8859-8>
+\newcommand{\DisableNikud}{%
+ \DeclareInputText{192}{}%
+ \DeclareInputText{193}{}%
+ \DeclareInputText{194}{}%
+ \DeclareInputText{195}{}%
+ \DeclareInputText{196}{}%
+ \DeclareInputText{197}{}%
+ \DeclareInputText{198}{}%
+ \DeclareInputText{199}{}%
+ \DeclareInputText{200}{}%
+ \DeclareInputText{201}{}%
+ \DeclareInputText{203}{}%
+ \DeclareInputText{204}{}%
+ \DeclareInputText{205}{}%
+ \DeclareInputText{206}{}%
+ \DeclareInputText{207}{}%
+ \DeclareInputText{208}{}%
+ \DeclareInputText{209}{}%
+ \DeclareInputText{210}{}%
+ \DeclareInputText{211}{}%
+ \DeclareInputText{212}{}%
+ \DeclareInputText{213}{}%
+ \DeclareInputText{214}{}%
+}
+%</8859-8>
+% \end{macrocode}
+%
+% Finally, we reset the category code of the |@| sign at the end of
+% all |.def| files.
+% \begin{macrocode}
+%<-driver>\makeatother
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/hebrew.dtx b/Master/texmf-dist/source/generic/babel/hebrew.dtx
new file mode 100644
index 00000000000..19f0fbf0fc8
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/hebrew.dtx
@@ -0,0 +1,3329 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{3345}
+%
+% \iffalse meta-comment
+%% Hebrew language definition and additional packages.
+%% Copyright (C) 1997 -- 2005 Boris Lavva.
+%
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% All rights reserved.
+%<*calendar>
+%% TeX & LaTeX macros for computing Hebrew date from Gregorian one
+%% Copyright (C) 1991 by Michail Rozman, misha@iop.tartu.ew.su
+%%
+%</calendar>
+% \fi
+%
+%
+% \iffalse
+%<hebrew>\ProvidesFile{hebrew.ldf}
+%<rightleft>\ProvidesFile{rlbabel.def}
+%<calendar>\ProvidesPackage{hebcal}
+%<*driver>
+\ProvidesFile{hebrew.drv}
+%</driver>
+% \fi
+% \ProvidesFile{hebrew.dtx}
+ [2005/03/30 v2.3h %
+% \iffalse
+%<hebrew> Hebrew language definition from the babel system
+%<rightleft> Right-to-Left support from the babel system
+%<calendar> Hebrew calendar
+%<driver> Driver file for hebrew support
+% \fi
+ Hebrew language support from the babel system]
+%
+% \iffalse
+% \subsection{A driver for this document}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you are
+% currently reading. It will be extracted from this file by the \dst{}
+% program.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\providecommand\babel{\textsf{babel}}
+\providecommand\file[1]{\texttt{#1}}
+\makeatletter
+% \end{macrocode}
+%
+% The code lines are numbered within sections,
+% \begin{macrocode}
+\@addtoreset{CodelineNo}{section}
+\renewcommand\theCodelineNo{%
+ \reset@font\scriptsize\thesection.\arabic{CodelineNo}}
+% \end{macrocode}
+% which should also be visible in the index; hence this
+% redefinition of a macro from \file{doc.sty}.
+% \begin{macrocode}
+\renewcommand\codeline@wrindex[1]{\if@filesw
+ \immediate\write\@indexfile
+ {\string\indexentry{#1}%
+ {\number\c@section.\number\c@CodelineNo}}\fi}
+% \end{macrocode}
+%
+% The glossary environment is used or the change log, but its
+% definition needs changing for this document.
+% \begin{macrocode}
+\renewenvironment{theglossary}{%
+ \glossary@prologue%
+ \GlossaryParms \let\item\@idxitem \ignorespaces}%
+ {}
+\makeatother
+\DisableCrossrefs
+\CodelineIndex
+\RecordChanges
+\title{Hebrew language support from the \babel\ system}
+\author{Boris Lavva}
+\date{Printed \today}
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{hebrew.dtx}
+ \DocInput{hebinp.dtx}
+ \DocInput{hebrew.fdd}
+ \DocInput{heb209.dtx}
+ \clearpage
+ \def\filename{index}
+ \PrintIndex
+ \clearpage
+ \def\filename{changes}
+ \PrintChanges
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \providecommand\babel{\textsf{babel}}
+% \providecommand\dst{\textsc{docstrip}}
+% \providecommand\file[1]{\texttt{#1}}
+% \providecommand\pkg[1]{\texttt{#1}}
+% \providecommand\XeT{X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT\@}
+% \providecommand\scrunch{\setlength{\itemsep}{-.05in}}
+% \GetFileInfo{hebrew.dtx}
+%
+% \changes{hebrew~0.1}{??/??/??}{%
+% Preliminary \LaTeX\ Hebrew option (by Sergio Fogel)}
+% \changes{hebrew~0.2}{??/??/??}{%
+% Corrections and additions (by Rama Porrat)}
+% \changes{hebrew~0.6}{??/??/??}{Additions (by Yael Dubinsky)}
+% \changes{hebrew~1.2}{??/??/??}{%
+% Bilingual tables, penalties, documentation and more changes
+% (by Yaniv Bargury)}
+% \changes{hebrew~1.30}{1992/05/15}{%
+% Font selection, various (by Alon Ziv)}
+% \changes{hebrew~1.31}{1993/02/22}{Bug fixes (by Alon Ziv)}
+% \changes{hebrew~1.32}{1993/03/10}{Made font-change command
+% for numbers `\cs{protect}'ed (by Alon Ziv)}
+% \changes{hebrew~1.33}{1993/03/11}{%
+% Made \cs{refstepcounter} work using \cs{@ltor} (by Alon Ziv)}
+% \changes{hebrew~1.34}{1993/03/22}{%
+% Moved font loading to another file. Added \cs{mainsec}.
+% Made all text strings be produced by control codes (similar to
+% \LaTeX 2.09 Mar '92). Fixed \cs{noindent} (by Alon Ziv)}
+% \changes{hebrew~1.35}{1993/03/22}{%
+% Moved the texts to a file selected by the current encoding
+% (by Alon Ziv)}
+% \changes{hebrew~1.36}{1993/03/24}{Use \TeX\ tricks to redefine
+% \cs{theXXXX} without keeping old definitions.
+% Use only \cs{@eng} for direction/font change (removed \cs{@ltor}).
+% Switched from use of \cs{mainsec} to code taken from \babel\
+% system (by Alon Ziv)}
+% \changes{hebrew~1.37}{1993/03/28}{%
+% Use \cs{add@around} in defining font size commands. Small bug
+% fixes (by Alon Ziv)}
+% \changes{hebrew~1.38}{1993/04/20}{%
+% \cs{everypar} changed so that \cs{noindent} works unmodified
+% (by Alon Ziv, thanks to Chris Rowley)}
+% \changes{hebrew~1.39}{1993/08/10}{%
+% Redefined primitive sectioning commands. Changed \cs{include} so
+% it finds \texttt{.h}, \texttt{.xet}, and \texttt{.ltx} files (no
+% extension needed). Reinstated use of \cs{@ltor} (by Alon Ziv)}
+% \changes{hebrew~1.40}{1993/09/01}{Added the \cs{@brackets} hack
+% (by Alon Ziv)}
+% \changes{hebrew~1.41}{1993/09/09}{%
+% Reworked towards using NFSS2. Changed some macro names to be more
+% logical: renamed \cs{@ltor} to \cs{@number}, \cs{@eng} to
+% \cs{@latin}, and (in \texttt{hebrew.ldf}) \cs{@heb} to
+% \cs{@hebrew} (by Alon Ziv)}
+% \changes{hebrew~1.42}{1993/09/22}{%
+% Made list environments work better. Fixed thebibliography
+% environment (by Alon Ziv)}
+% \changes{hebrew~2.0a}{1998/01/01}{%
+% Completely rewritten for \LaTeXe\ and \babel\ support. Various
+% input and font encodings (with NFSS2) are supported too. The
+% original \pkg{hebrew.sty} is divided to a number of packages and
+% definition files for better readability and extensibility. Added
+% some user- and code-level documentation inside the \texttt{.dtx}
+% and \texttt{.fdd} files, and \LaTeX -driven installation with
+% \pkg{hebrew.ins} (by Boris Lavva)}
+% \changes{hebrew~2.1}{2000/11/23}{%
+% corrections from Sivan Toledo: sender name in letter, and section name in
+% headings. (by Tzafrir Cohen)}
+% \changes{hebrew~2.2}{2000/12/11}{%
+% renamed hebrew letters to heb* (e.g.: alef renamed to hebalef)
+% (by Tzafrir Cohen)}
+% \changes{hebrew~2.3}{2001/02/27}{
+% added several \cs{@ifclassloaded}\{slides\} to allow the use of the
+% slides class. (by Tzafrir Cohen)}
+% \changes{hebrew~2.3a}{2001/07/09}{
+% The documentation should now be built fine (broken since at least
+% 2.1, and probably 2.0) (by Tzafrir Cohen)}
+% \changes{hebrew~2.3b}{2001/08/16}{
+% minor clean-ups. The documentation builds now with no warnings.
+% Also removed \cs{R} from the caption macro (added in 2.1)
+% Added internal \cs{@ensure@L} and \cs{@ensure@R}
+% (Is there a real need for them? Maybe should they be exposed?)
+% (by Tzafrir Cohen)}
+% \changes{hebrew~2.3c}{2001/10/05}{
+% a temporary fix to the \cs{gim} macro. Should be replaced by stuff
+% from hebcal.
+% (by Tzafrir Cohen)}
+% \changes{hebrew~2.3d}{2002/01/04}{
+% Initial support for the prosper class. Added \cs{arabicnorl} .
+% (by Tzafrir Cohen)}
+% \changes{hebrew~2.3e}{2002/08/09}{
+% Removing hebtech from this distriution (not relevant to babel),
+% added \cs{HeblatexEncoding}. some docs cleanup
+% (by Tzafrir Cohen)}
+% \changes{hebrew~2.3f}{2002/12/26}{
+% redefined \cs{list} instead of redefining every environment
+% that uses it. some pscolor handling, removed HeblatexEncoding
+% (don't use 2.3e) (by Tzafrir Cohen)}
+% \changes{hebrew~2.3g}{2003/06/05}{
+% Reimplemented the printing of Hebrew numerals and Hebrew
+% counters; modified \pkg{hebcal.sty} to use this implementation
+% when typesetting Hebrew dates; added option |full| to package
+% \pkg{hebcal}; also removed some gratuitous
+% spaces inserted by \pkg{hebcal.sty} by adding comment marks.
+% CAUTION: the changes to \pkg{hebcal.sty} make it dependent on
+% \pkg{babel} and not useable as a stand-alone package. Is this a
+% problem? (by Ron Artstein)}
+%
+% \section{The Hebrew language}\label{sec:hebrew}
+%
+% The file \file{\filename}\footnote{The Hebrew language support
+% files described in this section have version number \fileversion\
+% and were last revised on \filedate.} provides the following
+% packages and files for Hebrew language support:
+% \begin{description}
+% \item[\file{hebrew.ldf}] file defines all the language-specific
+% macros for the Hebrew language.
+% \item[\file{rlbabel.def}] file is used by |hebrew.ldf| for
+% bidirectional versions of the major \LaTeX{} commands and
+% environments. It is designed to be used with other right-to-left
+% languages, not only with Hebrew.
+% \item[\pkg{hebcal.sty}] package defines a set of macros for
+% computing Hebrew date from Gregorian one.
+% \end{description}
+%
+% Additional Hebrew input and font encoding definition files that
+% should be included and used with \file{hebrew.ldf} are:
+% \begin{description}
+% \item[\file{hebinp.dtx}] provides Hebrew input encodings, such as
+% ISO 8859-8, MS Windows codepage 1255 or IBM PC codepage 862
+% (see Section~\ref{sec:hebinp} on page~\pageref{sec:hebinp}).
+% \item[\file{hebrew.fdd}] contains Hebrew font encodings, related
+% font definition files and \pkg{hebfont} package that
+% provides Hebrew font switching commands (see
+% Section~\ref{sec:hebfdd} on page~\pageref{sec:hebfdd} for
+% further details).
+% \end{description}
+%
+% \LaTeX~2.09 compatibility files are included with
+% \file{heb209.dtx} and gives possibility to compile existing
+% \LaTeX~2.09 Hebrew documents with small (if any) changes (see
+% Section~\ref{sec:heb209} on page~\pageref{sec:heb209} for
+% details).
+%
+% Finally, optional document class \pkg{hebtech} may be useful for
+% writing theses and dissertations in both Hebrew and English (and
+% any other languages included with \babel). It designed to meet
+% requirements of the Graduate School of the Technion --- Israel
+% Institute of Technology.
+%
+% \emph{As of version 2.3e hebtech is no longer distributed together
+% with heblatex. It should be part of a new "hebclasses" package}
+%
+% \subsection{Acknowledgement}
+%
+% The following people have contributed to Hebrew package in one
+% way or another, knowingly or unknowingly. In alphabetical order:
+% Irina Abramovici, Yaniv Bargury, Yael Dubinsky, Sergio Fogel,
+% Dan Haran, Rama Porrat, Michail Rozman, Alon Ziv.
+%
+% Tatiana Samoilov and Vitaly Surazhsky found a number of serious
+% bugs in preliminary version of Hebrew package.
+%
+% A number of other people have contributed comments and
+% information. Specific contributions are acknowledged within the
+% document.
+%
+% I want to thank my wife, Vita, and son, Mishka, for their
+% infinite love and patience.
+%
+% If you made a contribution and I haven't mentioned it, don't
+% worry, it was an accident. I'm sorry. Just tell me and I will add
+% you to the next version.
+%
+% \StopEventually{}
+%
+% \subsection{The {\normalfont\dst{}} modules}
+%
+% The following modules are used in the implementation to direct
+% \dst{} in generating external files:
+% \begin{center}
+% \begin{tabular}{@{}ll}
+% driver & produce a documentation driver file \\[4pt]
+% hebrew & produce Hebrew language support file\\
+% rightleft & create right-to-left support file\\
+% calendar & create Hebrew calendar package
+% \end{tabular}
+% \end{center}
+% A typical \dst{} command file would then have entries like:
+% \begin{quote}
+% |\generateFile{hebrew.ldf}{t}{\from{hebrew.dtx}{hebrew}}|
+% \end{quote}
+%
+% \subsection{Hebrew language definitions}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the |@|
+% sign, etc.
+% \begin{macrocode}
+%<*hebrew>
+\LdfInit{hebrew}{captionshebrew}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, |hebrew| will be an `unknown' language, in which case we
+% have to make it known. So we check for the existence of
+% |\l@hebrew| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@hebrew\@undefined
+ \@nopatterns{Hebrew}%
+ \adddialect\l@hebrew0
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\hebrewencoding}
+% \emph{FIX DOCS REGARDING 8BIT}
+%
+% Typesetting Hebrew texts implies that a special input and output
+% encoding needs to be used. Generally, the user may choose
+% between different available Hebrew encodings provided. The
+% current support for Hebrew uses all available fonts from the
+% Hebrew University of Jerusalem encoded in `old-code' 7-bit
+% encoding also known as Israeli Standard SI-960. We define for
+% these fonts the Local Hebrew Encoding |LHE| (see the file
+% |hebrew.fdd| for more details), and the |LHE| encoding definition
+% file should be loaded by default.
+%
+% Other fonts are available in windows-cp1255 (a superset of ISO-8859-8
+% with nikud). For those, the encoding |HE8| should be used. Such fonts
+% are, e.g., windows' TrueType fonts (once cnverted to Type1 or MetaFont)
+% and IBM's Type1 fonts.
+%
+% However, if an user wants to use another font encoding, for
+% example, cyrillic encoding T2 and extended latin encoding T1, ---
+% he/she has to load the corresponding file \emph{before} the
+% \pkg{hebrew} package. This may be done in the following way:
+% \begin{quote}
+% |\usepackage[LHE,T2,T1]{fontenc}|\\
+% |\usepackage[hebrew,russian,english]{babel}|
+% \end{quote}
+% We make sure that the |LHE| encoding is known to \LaTeX{} at end
+% of this package.
+%
+% Also note that if you want to use the encoding |HE8| , you should define
+% the following in your document, \emph{before loading babel}:
+% \begin{quote}
+% |\def\HeblatexEncoding{HE8}|\\
+% |\def\HeblatexEncodingFile{he8enc}|
+% \end{quote}
+% \changes{hebrew-2.3h}{2004/02/20}{Make LHE the default encoding for
+% compatibility reasons}
+% \begin{macrocode}
+\providecommand{\HeblatexEncoding}{LHE}%
+\providecommand{\HeblatexEncodingFile}{lheenc}%
+\newcommand{\heblatex@set@encoding}[2]{
+}
+\AtEndOfPackage{%
+ \@ifpackageloaded{fontenc}{%
+ \@ifl@aded{def}{%
+ \HeblatexEncodingFile}{\def\hebrewencoding{\HeblatexEncoding}}{}%
+ }{%
+ \input{\HeblatexEncodingFile.def}%
+ \def\hebrewencoding{\HeblatexEncoding}%
+ }}
+% \end{macrocode}
+% \end{macro}
+%
+% We also need to load inputenc package with one of the Hebrew
+% input encodings. By default, we set up the |8859-8| codepage.
+% If an user wants to use many input encodings in the same
+% document, for example, the MS Windows Hebrew codepage |cp1255|
+% and the standard IBM PC Russian codepage |cp866|, he/she has to
+% load the corresponding file \emph{before} the hebrew package
+% too. This may be done in the following way:
+% \begin{quote}
+% |\usepackage[cp1255,cp866]{inputenc}|\\
+% |\usepackage[hebrew,russian,english]{babel}|
+% \end{quote}
+%
+% An user can switch input encodings in the document using the
+% command |\inputencoding|, for example, to use the |cp1255|:
+% \begin{quote}
+% |\inputencoding{cp1255}|
+% \end{quote}
+% \begin{macrocode}
+\AtEndOfPackage{%
+ \@ifpackageloaded{inputenc}{}{\RequirePackage[8859-8]{inputenc}}}
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Hebrew language.
+%
+% \begin{macro}{\hebrewhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|. They are set
+% to~2.
+% \changes{hebrew~2.0b}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionshebrew}
+% The macro |\captionshebrew| replaces all captions used in the four
+% standard document classes provided with \LaTeXe with their Hebrew
+% equivalents.
+% \changes{hebrew-2.0b}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionshebrew{%
+ \def\prefacename{\@ensure@R{\hebmem\hebbet\hebvav\hebalef}}%
+ \def\refname{\@ensure@R{\hebresh\hebshin\hebyod\hebmem\hebtav\ %
+ \hebmem\hebqof\hebvav\hebresh\hebvav\hebtav}}%
+ \def\abstractname{\@ensure@R{\hebtav\hebqof\hebtsadi\hebyod\hebresh}}%
+ \def\bibname{\@ensure@R{\hebbet\hebyod\hebbet\heblamed\hebyod\hebvav%
+ \hebgimel\hebresh\hebpe\hebyod\hebhe}}%
+ \def\chaptername{\@ensure@R{\hebpe\hebresh\hebqof}}%
+ \def\appendixname{\@ensure@R{\hebnun\hebsamekh\hebpe\hebhet}}%
+ \def\contentsname{\@ensure@R{%
+ \hebtav\hebvav\hebkaf\hebfinalnun\ %
+ \hebayin\hebnun\hebyod\hebyod\hebnun\hebyod\hebfinalmem}}%
+ \def\listfigurename{\@ensure@R{%
+ \hebresh\hebshin\hebyod\hebmem\hebtav\ %
+ \hebalef\hebyod\hebvav\hebresh\hebyod\hebfinalmem}}%
+ \def\listtablename{\@ensure@R{%
+ \hebresh\hebshin\hebyod\hebmem\hebtav\
+ \hebtet\hebbet\heblamed\hebalef\hebvav\hebtav}}%
+ \def\indexname{\@ensure@R{\hebmem\hebpe\hebtav\hebhet}}%
+ \def\figurename{\@ensure@R{\hebalef\hebyod\hebvav\hebresh}}%
+ \def\tablename{\@ensure@R{\hebtet\hebbet\heblamed\hebhe}}%
+ \def\partname{\@ensure@R{\hebhet\heblamed\hebqof}}%
+ \def\enclname{\@ensure@R{\hebresh\hebtsadi"\hebbet}}%
+ \def\ccname{\@ensure@R{\hebhe\hebayin\hebtav\hebqof\hebyod%
+ \hebfinalmem}}%
+ \def\headtoname{\@ensure@R{\hebalef\heblamed}}%
+ \def\pagename{\@ensure@R{\hebayin\hebmem\hebvav\hebdalet}}%
+ \def\psname{\@ensure@R{\hebnun.\hebbet.}}%
+ \def\seename{\@ensure@R{\hebresh\hebalef\hebhe}}%
+ \def\alsoname{\@ensure@R{\hebresh\hebalef\hebhe \hebgimel%
+ \hebmemesof}}%
+ \def\proofname{\@ensure@R{\hebhe\hebvav\hebkaf\hebhet\hebhe}}
+ \def\glossaryname{\@ensure@L{Glossary}}% <-- Needs translation
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\slidelabel}
+% Here we fix the macro |slidelabel| of the seminar package. Note
+% that this still won't work well enough when overlays will be
+% involved
+% \begin{macrocode}
+\@ifclassloaded{seminar}{%
+ \def\slidelabel{\bf \if@rl\R{\hebshin\hebqof\hebfinalpe{} \theslide}%
+ \else\L{Slide \theslide}%
+ \fi}%
+}{}
+% \end{macrocode}
+% \end{macro}
+%
+% Here we provide an user with translation of Gregorian dates
+% to Hebrew. In addition, the \pkg{hebcal} package can be used
+% to create Hebrew calendar dates.
+%
+% \begin{macro}{\hebmonth}
+% The macro |\hebmonth{|\emph{month}|}| produces month names in
+% Hebrew.
+% \begin{macrocode}
+\def\hebmonth#1{%
+ \ifcase#1\or \hebyod\hebnun\hebvav\hebalef\hebresh\or %
+ \hebpe\hebbet\hebresh\hebvav\hebalef\hebresh\or %
+ \hebmem\hebresh\hebfinaltsadi\or %
+ \hebalef\hebpe\hebresh\hebyod\heblamed\or %
+ \hebmem\hebalef\hebyod\or \hebyod\hebvav\hebnun\hebyod\or %
+ \hebyod\hebvav\heblamed\hebyod\or %
+ \hebalef\hebvav\hebgimel\hebvav\hebsamekh\hebtet\or %
+ \hebsamekh\hebpe\hebtet\hebmem\hebbet\hebresh\or %
+ \hebalef\hebvav\hebqof\hebtet\hebvav\hebbet\hebresh\or %
+ \hebnun\hebvav\hebbet\hebmem\hebbet\hebresh\or %
+ \hebdalet\hebtsadi\hebmem\hebbet\hebresh\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hebdate}
+% The macro |\hebdate{|\emph{day}|}{|\emph{month}|}{|\emph{year}|}|
+% translates a given Gregorian date to Hebrew.
+% \begin{macrocode}
+\def\hebdate#1#2#3{%
+ \beginR\beginL\number#1\endL\ \hebbet\hebmonth{#2}
+ \beginL\number#3\endL\endR}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hebday}
+% The macro |\hebday| will replace |\today| command when in Hebrew
+% mode.
+% \begin{macrocode}
+\def\hebday{\hebdate{\day}{\month}{\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datehebrew}
+% The macro |\datehebrew| redefines the command |\today| to produce
+% Gregorian dates in Hebrew. It uses the macro |\hebday|.
+% \begin{macrocode}
+\def\datehebrew{\let\today=\hebday}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\extrashebrew| will perform all the extra definitions
+% needed for the Hebrew language. The macro |\noextrashebrew|
+% is used to cancel the actions of |\extrashebrew|.
+%
+% \begin{macro}{\extrashebrew}
+% We switch font encoding to Hebrew and direction to
+% right-to-left. We cannot use the regular language switching
+% commands (for example, |\sethebrew| and |\unsethebrew| or
+% |\selectlanguage{hebrew}|), when in restricted horizontal mode,
+% because it will result in \emph{unbalanced} |\beginR| or
+% |\beginL| primitives.
+% Instead, in \TeX 's restricted horizontal mode, the
+% |\L{|\emph{latin text}|}| and |\R{|\emph{hebrew text}|}|, or
+% |\embox{|\emph{latin text}|}| and |\hmbox{|\emph{hebrew text}|}|
+% should be used.
+%
+% Hence, we use |\beginR| and |\beginL| switching commands only
+% when not in restricted horizontal mode.
+% \begin{macrocode}
+\addto\extrashebrew{%
+ \tohebrew%
+ \ifhmode\ifinner\else\beginR\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\noextrashebrew}
+% The macro |\noextrashebrew| is used to cancel the actions of
+% |\extrashebrew|. We switch back to the previous font encoding and
+% restore left-to-right direction.
+% \begin{macrocode}
+\addto\noextrashebrew{%
+ \fromhebrew%
+ \ifhmode\ifinner\else\beginL\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% Generally, we can switch to- and from- Hebrew by means of
+% standard \babel -defined commands, for example,
+% \begin{quote}
+% |\selectlanguage{hebrew}|
+% \end{quote}
+% or
+% \begin{quote}
+% |\begin{otherlanguage}{hebrew}|\\
+% \hspace*{1.5em} some Hebrew text\\
+% |\end{otherlanguage}|
+% \end{quote}
+% Now we define two additional commands that offer the possibility
+% to switch to and from Hebrew language. These commands are
+% backward compatible with the previous versions of
+% \pkg{hebrew.sty}.
+%
+% \begin{macro}{\sethebrew}
+% \begin{macro}{\unsethebrew}
+% The command |\sethebrew| will switch from the current font encoding
+% to the hebrew font encoding, and from the current direction of
+% text to the right-to-left mode. The command |\unsethebrew| switches
+% back.
+%
+% Both commands use standard right-to-left switching macros
+% |\setrllanguage{|\emph{ r2l language name}|}| and
+% |\unsetrllanguage{|\emph{r2l language name}|}|, that
+% defined in the \file{rlbabel.def} file.
+% \begin{macrocode}
+\def\sethebrew{\setrllanguage{hebrew}}
+\def\unsethebrew{\unsetrllanguage{hebrew}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\hebrewtext}
+% \begin{macro}{\nohebrewtext}
+% The following two commands are \emph{obsolete} and work only
+% in \LaTeX 2.09 compatibility mode. They are synonyms of
+% |\sethebrew| and |\unsethebrew| defined above.
+% \begin{macrocode}
+\if@compatibility
+ \let\hebrewtext=\sethebrew
+ \let\nohebrewtext=\unsethebrew
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tohebrew}
+% \begin{macro}{\fromhebrew}
+% These two commands change only the current font encoding to- and
+% from- Hebrew encoding. Their implementation uses
+% |\@torl{|\emph{language name}|}| and |\@fromrl| macros defined in
+% \file{rlbabel.def} file. Both commands may be useful \emph{only}
+% for package and class writers, not for regular users.
+% \begin{macrocode}
+\def\tohebrew{\@torl{hebrew}}%
+\def\fromhebrew{\@fromrl}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@hebrew}
+% Sometimes we need to preserve Hebrew mode without knowing in
+% which environment we are located now. For these cases, the
+% |\@hebrew{|\emph{hebrew text}|}| macro will be useful. Not that
+% this macro is similar to the |\@number| and |\@latin| macros
+% defined in \file{rlbabel.def} file.
+% \begin{macrocode}
+\def\@@hebrew#1{\beginR{{\tohebrew#1}}\endR}
+\def\@hebrew{\protect\@@hebrew}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Hebrew numerals}
+%
+% We provide commands to print numbers in the traditional
+% notation using Hebrew letters. We need commands that print
+% a Hebrew number from a decimal input, as well as commands
+% to print the value of a counter as a Hebrew number.
+% \begin{macro}{\if@gim@apost}
+% \begin{macro}{\if@gim@final}
+% Hebrew numbers can be written in various styles: with or without
+% apostrophes, and with the letters kaf, mem, nun, pe, tsadi as either
+% final or initial forms when they are the last letters in the
+% sequence. We provide two flags to set the style options.
+% \begin{macrocode}
+\newif\if@gim@apost % whether we print apostrophes
+\newif\if@gim@final % whether we use final or initial letters
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\hebrewnumeral}
+% \begin{macro}{\Hebrewnumeral}
+% \begin{macro}{\Hebrewnumeralfinal}
+% The commands that print a Hebrew number
+% must specify the style locally: relying on a global style
+% option could cause a counter to
+% print in an inconsistent manner---for instance, page numbers
+% might appear in different styles if the global style option
+% changed mid-way through a document.
+% The commands only allow three of the four possible flag
+% combinations (I do not know of a use that requires the
+% combination of final letters and no apostrophes --RA).
+%
+% Each command sets the style flags and calls |\@hebrew@numeral|.
+% Double braces are used in order to protect the values of
+% |\@tempcnta| and |\@tempcntb|, which are changed by this call;
+% they also keep the flag assignments local (this is not important
+% because the global values are never used).
+% \begin{macrocode}
+\newcommand*{\hebrewnumeral}[1] % no apostrophe, no final letters
+ {{\@gim@finalfalse\@gim@apostfalse\@hebrew@numeral{#1}}}
+\newcommand*{\Hebrewnumeral}[1] % apostrophe, no final letters
+ {{\@gim@finalfalse\@gim@aposttrue\@hebrew@numeral{#1}}}
+\newcommand*{\Hebrewnumeralfinal}[1] % apostrophe, final letters
+ {{\@gim@finaltrue\@gim@aposttrue\@hebrew@numeral{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\alph}
+% \begin{macro}{\@alph}
+% \begin{macro}{\Alph}
+% \begin{macro}{\@Alph}
+% \begin{macro}{\Alphfinal}
+% \begin{macro}{\@Alphfinal}
+% Counter-printing commands are based on the above commands. The
+% natural name for the counter-printing commands is |\alph|, because
+% Hebrew numerals are the only way to represent numbers with
+% Hebrew letters (kaf always means~20, never~11). Hebrew has no
+% uppercase letters, hence no need for the familiar meaning of |\Alph|;
+% we therefore define |\alph| to print counters as Hebrew numerals
+% without apostrophes, and |\Alph| to print with apostrophes. A third
+% form, |\Alphfinal|, is provided to print with apostrophes and final
+% letters, as is required for Hebrew year designators. The commands
+% |\alph| and |\Alph| are defined in \pkg{latex.ltx}, and we only
+% need to redefine the internal commands |\@alph| and
+% |\@Alph|; for |\Alphfinal| we need to provide both a wrapper and
+% an internal command.
+% The counter printing commands are made semi-robust: without the
+% |\protect|, commands like |\theenumii| break (I'm not quite clear
+% on why this happens, --RA); at the same time, we cannot make the
+% commands too robust (e.g.~with |\DeclareRobustCommand|) because
+% this would enter the command name rather than its value into
+% files like |.aux|, |.toc| etc\@.
+% The old meanings of meaning of |\@alph| and |\@Alph| are saved
+% upon entering Hebrew mode and restored upon exiting it.
+% \begin{macrocode}
+\addto\extrashebrew{%
+ \let\saved@alph=\@alph%
+ \let\saved@Alph=\@Alph%
+ \renewcommand*{\@alph}[1]{\protect\hebrewnumeral{\number#1}}%
+ \renewcommand*{\@Alph}[1]{\protect\Hebrewnumeral{\number#1}}%
+ \def\Alphfinal#1{\expandafter\@Alphfinal\csname c@#1\endcsname}%
+ \providecommand*{\@Alphfinal}[1]{\protect\Hebrewnumeralfinal{\number#1}}}
+\addto\noextrashebrew{%
+ \let\@alph=\saved@alph%
+ \let\@Alph=\saved@Alph}
+% \end{macrocode}
+% Note that |\alph| (without apostrophes) is already the
+% appropriate choice for the second-level enumerate label, and
+% |\Alph| (with apostrophes) is an appropriate choice for appendix;
+% however, the default \LaTeX\ labels need to be redefined for
+% appropriate cross-referencing, see below.
+% \LaTeX\ default class files specify |\Alph| for
+% the fourth-level enumerate level, this should probably be changed.
+% Also, the way labels get flushed left by default looks inappropriate
+% for Hebrew numerals, so we should redefine |\labelenumii| as well
+% as |\labelenumiv| (presently not implemented).
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\theenumii}
+% \begin{macro}{\theenumiv}
+% \begin{macro}{\label}
+% Cross-references to counter labels need to be printed according
+% to the language environment in which a label was issued, not
+% the environment in which it is called: for example, a label~(1b)
+% issued in a Latin environment should be referred to as~(1b) in a
+% Hebrew text, and label~(2dalet) issued in a Hebrew environment
+% should be referred to as~(2dalet) in a Latin text. This was the
+% unanimous opinion in a poll sent to the Ivri\TeX\ list.
+% We therefore redefine |\theenumii| and |\theenumiv|, so that an
+% explicit language instruction gets written to the |.aux| file.
+% \begin{macrocode}
+\renewcommand{\theenumii}
+ {\if@rl\protect\hebrewnumeral{\number\c@enumii}%
+ \else\protect\L{\protect\@@alph{\number\c@enumii}}\fi}
+\renewcommand{\theenumiv}
+ {\if@rl\protect\Hebrewnumeral{\number\c@enumiv}%
+ \else\protect\L{\protect\@@Alph{\number\c@enumiv}}\fi}
+% \end{macrocode}
+% We also need to control for the font and direction in which a
+% counter label is printed. Direction is straightforward: a Latin
+% label like~(1b) should be written left-to-right when called in a
+% Hebrew text, and a Hebrew label like~(2dalet) should be written
+% right-to-left when called in a Latin text. The font question is
+% more delicate, because we should decide whether the numerals
+% should be typeset in the font of the language enviroment in which
+% the label was issued, or that of the environment in which it is
+% called.
+% \begin{itemize}
+% \item
+% A purely numeric label like~(23) looks best if it is set in the
+% font of the surrounding language.
+% \item
+% But a mixed alphanumeric label like~(1b) lookes weird if
+% the~`1' is taken from the Hebrew font; likewise, (2dalet) looks
+% weird if the~`2' is taken from a Latin font.
+% \item
+% Finally, mixing the two possibilities is worst, because a
+% single Hebrew sentence referring to examples~(1b) and~(2) would
+% take the~`1' from the Latin font and the~`2' from the Hebrew
+% font, and this looks really awful. (It is also very hard to
+% implement).
+% \end{itemize}
+% In light of the conflicting considerations it seems like there's
+% no perfect solution. I have chosen to implement the top option,
+% where numerals are taken from the font of the surrounding
+% language, because it seems to me that reference to purely numeric
+% labels is the most common, so this gives a good solution to the
+% majority of cases and a mediocre solution to the minority.
+%
+% We redefine the |\label| command which writes to the
+% |.aux| file. Depending on the language environment we issue
+% appropriate |\beginR/L|$\cdots$|\endR/L| commands to control the
+% direction without affecting the font. Since these commands do not
+% affect the value of |\if@rl|, we cannot use the macro
+% |\@brackets| to determine the correct brackets to be used with
+% |\p@enumiii|; instead, we let the language environment determine an
+% explicit definition.
+% \begin{macrocode}
+\def\label#1{\@bsphack
+ \if@rl
+ \def\p@enumiii{\p@enumii)\theenumii(}%
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1}{{\beginR\@currentlabel\endR}{\thepage}}}%
+ \else
+ \def\p@enumiii{\p@enumii(\theenumii)}%
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1}{{\beginL\@currentlabel\endL}{\thepage}}}%
+ \fi
+ \@esphack}
+% \end{macrocode}
+% NOTE: it appears that the definition of |\label| is
+% language-independent and thus belongs in \pkg{rlbabel.def}, but
+% this is not the case. The decision to typeset label numerals
+% in the font of the surrounding language is reasonable for Hebrew,
+% because mixed-font (1b) and (2dalet) are somewhat acceptable. The
+% same may not be acceptable for Arabic, whose numeral glyphs are
+% radically different from those in the Latin fonts. The decision
+% about the direction may also be different for Arabic, which is
+% more right-to-left oriented than Hebrew (two examples: dates like
+% 15/6/2003 are written left-to-right in Hebrew but right-to-left
+% in Arabic; equations like $1+2=3$ are written left-to-right in
+% Hebrew but right-to-left in Arabic elementary school textbooks
+% using Arabic numeral glyphs). My personal hunch is that a label
+% like~(1b) in an Arabic text would be typeset left-to-right if
+% the~`1' is a Western glyph, but right-to-left if the~`1' is an
+% Arabic glyph. But this is just a guess, I'd have to ask Arab
+% typesetters to find the correct answer. --RA.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\appendix}
+% The following code provides for the proper printing of appendix
+% numbers in tables of contents. Section and chapter headings are
+% normally bilingual: regardless of the text language, the author
+% supplies each section/chapter with two headings---one for the
+% Hebrew table of contents and one for the Latin table of contents.
+% It makes sense that the label should be a Latin letter in the
+% Latin table of contents and a Hebrew letter in the Hebrew table
+% of contents. The definition is similar to that of |\theenumii|
+% and |\theenumiv| above, but additional |\protect| commands ensure
+% that the entire condition is written the |.aux| file. The
+% appendix number will therefore be typeset according to the
+% environment in which it is used rather than issued: a Hebrew
+% number (with apostrophes) in a Hebrew environment and a Latin
+% capital letter in a Latin environment (the command
+% |\@@Alph| is set in \pkg{rlbabel.def} to hold the default meaning
+% of \LaTeX\ [latin] |\@Alph|, regardless of the mode in which it is
+% issued). The net result is that
+% the second appendix will be marked with~`B' in the Latin table of
+% contents and with `bet' in the Hebrew table of contents; the mark
+% in the main text will depend on the language of the appendix itself.
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{%
+\@ifclassloaded{slides}{}{%
+ \let\@@appendix=\appendix%
+ \@ifclassloaded{article}{%
+ \renewcommand\appendix{\@@appendix%
+ \renewcommand\thesection
+ {\protect\if@rl\protect\Hebrewnumeral{\number\c@section}%
+ \protect\else\@@Alph\c@section\protect\fi}}}
+ {\renewcommand\appendix{\@@appendix%
+ \renewcommand\thechapter
+ {\protect\if@rl\protect\Hebrewnumeral{\number\c@chapter}%
+ \protect\else\@@Alph\c@chapter\protect\fi}}}}}
+% \end{macrocode}
+% QUESTION: is this also the appropriate way to refer to an
+% appendix in the text, or should we retain the original label the
+% same way we did with |enumerate| labels?
+% ANOTHER QUESTION: are similar redefinitions needed for other
+% counters that generate texts in bilingual lists like |.lof/.fol|
+% and |.lot/.tol|? --RA.
+% \end{macro}
+% \begin{macro}{\@hebrew@numeral}
+% The command |\@hebrew@numeral| prints a Hebrew number. The groups
+% of thousands, millions, billions are separated by apostrophes and
+% typeset without apostrophes or final letters; the remainder
+% (under 1000) is typeset conventionally, with the selected styles
+% for apostrophes and final letters.
+% The function calls on |\gim@no@mil| to typeset each
+% three-digit block. The algorithm
+% is recursive, but the maximum recursion depth is~4 because \TeX\
+% only allows numbers up to $2^{31}-1 = 2{,}147{,}483{,}647$.
+% The typesetting routine is wrapped in |\@hebrew| in order to
+% ensure that numbers are always typeset in Hebrew mode.
+%
+% Initialize: |\@tempcnta| holds the value, |\@tempcntb| is used for
+% calculations.
+% \begin{macrocode}
+\newcommand*{\@hebrew@numeral}[1]
+{\@hebrew{\@tempcnta=#1\@tempcntb=#1\relax
+ \divide\@tempcntb by 1000
+% \end{macrocode}
+% If we're under 1000, call |\gim@nomil|
+% \begin{macrocode}
+ \ifnum\@tempcntb=0\gim@nomil\@tempcnta\relax
+% \end{macrocode}
+% If we're above 1000 then force no apostrophe and no final letter
+% styles for the value above~1000, recur for the value above~1000,
+% add an apostrophe, and call |\gim@nomil| for the remainder.
+% \begin{macrocode}
+ \else{\@gim@apostfalse\@gim@finalfalse\@hebrew@numeral\@tempcntb}'%
+ \multiply\@tempcntb by 1000\relax
+ \advance\@tempcnta by -\@tempcntb\relax
+ \gim@nomil\@tempcnta\relax
+ \fi
+}}
+% \end{macrocode}
+% NOTE: is it the case that 15,000 and 16,000 are written as
+% yod-he and yod-vav, rather than tet-vav and tet-zayin? This
+% vaguely rings a bell, but I'm not certain. If this is the case,
+% then the current behavior is incorrect and should be changed. --RA.
+% \end{macro}
+% \begin{macro}{\gim@nomil}
+% The command |\gim@nomil| typesets an integer between 0~and~999
+% (for~0 it typesets nothing). The code has been modified from the
+% old |hebcal.sty|
+% (appropriate credits---Boris Lavva and Michail Rozman ?).
+% |\@tempcnta| holds the total value that remains to be typeset.
+% At each stage we find the highest valued letter that is
+% less than or equal to |\@tempcnta|, and call on |\gim@print| to
+% subtract this value and print the letter.
+%
+% Initialize: |\@tempcnta| holds the value, there is no previous
+% letter.
+% \begin{macrocode}
+\newcommand*{\gim@nomil}[1]{\@tempcnta=#1\@gim@prevfalse
+% \end{macrocode}
+% Find the hundreds digit.
+% \begin{macrocode}
+ \@tempcntb=\@tempcnta\divide\@tempcntb by 100\relax % hundreds digit
+ \ifcase\@tempcntb % print nothing if no hundreds
+ \or\gim@print{100}{\hebqof}%
+ \or\gim@print{200}{\hebresh}%
+ \or\gim@print{300}{\hebshin}%
+ \or\gim@print{400}{\hebtav}%
+ \or\hebtav\@gim@prevtrue\gim@print{500}{\hebqof}%
+ \or\hebtav\@gim@prevtrue\gim@print{600}{\hebresh}%
+ \or\hebtav\@gim@prevtrue\gim@print{700}{\hebshin}%
+ \or\hebtav\@gim@prevtrue\gim@print{800}{\hebtav}%
+ \or\hebtav\@gim@prevtrue\hebtav\gim@print{900}{\hebqof}%
+ \fi
+% \end{macrocode}
+% Find the tens digit. The numbers 15 and 16 are traditionally
+% printed as tet-vav ($9+6$) and tet-zayin ($9+7$) to avoid
+% spelling the Lord's name.
+% \begin{macrocode}
+ \@tempcntb=\@tempcnta\divide\@tempcntb by 10\relax % tens digit
+ \ifcase\@tempcntb % print nothing if no tens
+ \or % number between 10 and 19
+ \ifnum\@tempcnta = 16 \gim@print {9}{\hebtet}% tet-zayin
+ \else\ifnum\@tempcnta = 15 \gim@print {9}{\hebtet}% tet-vav
+ \else \gim@print{10}{\hebyod}%
+ \fi % \@tempcnta = 15
+ \fi % \@tempcnta = 16
+% \end{macrocode}
+% Initial or final forms are selected according to the current
+% style option; |\gim@print| will force a non-final letter in
+% non-final position by means of a local style change.
+% \begin{macrocode}
+ \or\gim@print{20}{\if@gim@final\hebfinalkaf\else\hebkaf\fi}%
+ \or\gim@print{30}{\heblamed}%
+ \or\gim@print{40}{\if@gim@final\hebfinalmem\else\hebmem\fi}%
+ \or\gim@print{50}{\if@gim@final\hebfinalnun\else\hebnun\fi}%
+ \or\gim@print{60}{\hebsamekh}%
+ \or\gim@print{70}{\hebayin}%
+ \or\gim@print{80}{\if@gim@final\hebfinalpe\else\hebpe\fi}%
+ \or\gim@print{90}{\if@gim@final\hebfinaltsadi\else\hebtsadi\fi}%
+ \fi
+% \end{macrocode}
+% Print the ones digit.
+% \begin{macrocode}
+ \ifcase\@tempcnta % print nothing if no ones
+ \or\gim@print{1}{\hebalef}%
+ \or\gim@print{2}{\hebbet}%
+ \or\gim@print{3}{\hebgimel}%
+ \or\gim@print{4}{\hebdalet}%
+ \or\gim@print{5}{\hebhe}%
+ \or\gim@print{6}{\hebvav}%
+ \or\gim@print{7}{\hebzayin}%
+ \or\gim@print{8}{\hebhet}%
+ \or\gim@print{9}{\hebtet}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\gim@print}
+% \begin{macro}{\if@gim@prev}
+% The actual printing routine typesets a digit with the appropriate
+% apostrophes: if a number sequence consists of a
+% single letter then it is followed by a single apostrophe, and if
+% it consists of more than one letter then a double
+% apostrophe is inserted before the last letter.
+% We typeset the letters one at a time, keeping a flag that tells
+% us if any previous letters had been typeset.
+% \begin{macrocode}
+\newif\if@gim@prev % flag if a previous letter has been typeset
+% \end{macrocode}
+% For each letter, we
+% first subtract its value from the total. Then,
+% \begin{itemize}
+% \item
+% if the result is zero then this is the last letter; we check
+% the flag to see if this is the only letter and print it with
+% the appropriate apostrophe;
+% \item
+% if the result is not zero then there remain additional letters
+% to be typeset; we print without an apostrophe and set the
+% `previous letter' flag.
+% \end{itemize}
+% |\@tempcnta| holds the total value that remains to be typeset.
+% We first deduct the letter's value from |\@tempcnta|,
+% so |\@tempcnta| is zero if and only if this is the last letter.
+% \begin{macrocode}
+\newcommand*{\gim@print}[2]{% #2 is a letter, #1 is its value.
+ \advance\@tempcnta by -#1\relax% deduct the value from the remainder
+% \end{macrocode}
+% If this is the last letter, we print with the appropriate
+% apostrophe (depending on the style option):
+% if there is a preceding letter, print |"x| if the style calls for
+% apostrophes, |x| if it doesn't;
+% otherwise, this is the only letter: print |x'| if the style calls
+% for apostrophes, |x| if it doesn't.
+% \begin{macrocode}
+ \ifnum\@tempcnta=0% if this is the last letter
+ \if@gim@prev\if@gim@apost"\fi#2%
+ \else#2\if@gim@apost'\fi\fi%
+% \end{macrocode}
+% If this is not the last letter: print a non-final form (by
+% forcing a local style option) and set the `previous letter' flag.
+% \begin{macrocode}
+ \else{\@gim@finalfalse#2}\@gim@prevtrue\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\hebr}
+% \begin{macro}{\gim}
+% The older Hebrew counter commands |\hebr| and |\gim| are retained
+% in order to keep older documents from breaking. They are set to
+% be equivalent to |\alph|, and their use is deprecated. Note that
+% |\hebr| gives different results than it had in the past---it
+% now typesets 11 as yod-alef rather than kaf.
+% \begin{macrocode}
+\let\hebr=\alph
+\let\gim=\alph
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% For backward compatibility with `older' \pkg{hebrew.sty}
+% packages, we define Hebrew equivalents of some useful \LaTeX\
+% commands. Note, however, that 8-bit macros defined in Hebrew
+% are no longer supported.
+% \begin{macrocode}
+\def\hebcopy{\protect\R{\hebhe\hebayin\hebtav\hebqof}}
+\def\hebincl{\protect\R{\hebresh\hebtsadi"\hebbet}}
+\def\hebpage{\protect\R{\hebayin\hebmem\hebvav\hebdalet}}
+\def\hebto{\protect\R{\hebayin\hebdalet}}
+% \end{macrocode}
+% |\hadgesh| produce ``poor man's bold'' (heavy printout), when
+% used with normal font glyphs. It is advisable to use bold font
+% (for example, \emph{Dead Sea}) instead of this macro.
+% \begin{macrocode}
+\def\hadgesh#1{\leavevmode\setbox0=\hbox{#1}%
+ \kern-.025em\copy0\kern-\wd0
+ \kern.05em\copy0\kern-\wd0
+ \kern-.025em\raise.0433em\box0 }
+% \end{macrocode}
+% |\piska| and |\piskapiska| sometimes used in `older' hebrew
+% sources, and should not be used in \LaTeXe.
+% \begin{macrocode}
+\if@compatibility
+ \def\piska#1{\item{#1}\hangindent=-\hangindent}
+ \def\piskapiska#1{\itemitem{#1}\hangindent=-\hangindent}
+\fi
+% \end{macrocode}
+% The following commands are simply synonyms for the standard ones,
+% provided with \LaTeXe.
+% \begin{macrocode}
+\let\makafgadol=\textendash
+\let\makafanak=\textemdash
+\let\geresh=\textquoteright
+\let\opengeresh=\textquoteright
+\let\closegeresh=\textquoteleft
+\let\openquote=\textquotedblright
+\let\closequote=\textquotedblleft
+\let\leftquotation=\textquotedblright
+\let\rightquotation=\textquotedblleft
+% \end{macrocode}
+%
+% We need to ensure that Hebrew is used as the default
+% right-to-left language at |\begin{document}|. The mechanism of
+% defining the |\@rllanguagename| is the same as in \babel 's
+% |\languagename|: the last right-to-left language in the
+% |\usepackage{babel}| line is set as the default right-to-left
+% language at document beginning.
+%
+% For example, the following code:
+% \begin{quote}
+% |\usepackage[russian,hebrew,arabic,greek,english]{babel}|
+% \end{quote}
+% will set the Arabic language as the default right-to-left
+% language and the English language as the default language.
+% As a result, the commands |\L{}| and |\embox{}| will use English
+% and |\R{}| and |\hmbox{}| will use Arabic by default. These
+% defaults can be changed with the next |\sethebrew| or
+% |\selectlanguage{|\emph{language name}|}| command.
+% \begin{macrocode}
+\AtBeginDocument{\def\@rllanguagename{hebrew}}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a configuration
+% file, setting the main language to be switched on at
+% |\begin{document}| and resetting the category code of |@| to its
+% original value.
+% \begin{macrocode}
+\ldf@finish{hebrew}
+%</hebrew>
+% \end{macrocode}
+%
+% \subsection{Right to left support}
+%
+% This file \pkg{rlbabel.def} defines necessary bidirectional macro
+% support for \LaTeXe. It is designed for use not only with Hebrew,
+% but with any Right-to-Left languages, supported by \babel. The
+% macros provided in this file are language and encoding
+% independent.
+%
+% Right-to-left languages will use \TeX\ extensions, namely \TeX\
+% primitives |\beginL|, |\endL| and |\beginR|, |\endR|, currently
+% implemented only in $\varepsilon$-\TeX\ and in \TeX{-}{-}\XeT.
+%
+% If $\varepsilon$-\TeX\ is used, we should switch it to the
+% \emph{enhanced} mode:
+% \begin{macrocode}
+%<*rightleft>
+\ifx\TeXXeTstate\undefined\else%
+ \TeXXeTstate=1
+\fi
+% \end{macrocode}
+%
+% Note, that $\varepsilon$-\TeX 's format file should be created
+% for \emph{extended} mode. Mode can be checked by running
+% $\varepsilon$-\TeX\ on some \TeX{} file, for example:
+% \begin{quote}
+% |This is e-TeX, Version 3.14159-1.1 (Web2c 7.0)|\\
+% |entering extended mode|
+% \end{quote}
+% The second line should be \texttt{entering extended mode}.
+%
+% We check if user uses Right-to-Left enabled engine instead of
+% regular Knuth's \TeX:
+% \begin{macrocode}
+\ifx\beginL\@undefined%
+ \newlinechar`\^^J
+ \typeout{^^JTo avoid this error message,^^J%
+ run TeX--XeT or e-TeX engine instead of regular TeX.^^J}
+ \errmessage{Right-to-Left Support Error: use TeX--XeT or e-TeX
+ engine}%
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Switching from LR to RL mode and back}
+%
+% \cs{@torl} and \cs{@fromrl} are called each time the horizontal
+% direction changes. They do all that is necessary besides changing
+% the direction. Currently their task is to change the encoding
+% information and mode (condition \cs{if@rl}). They should not
+% normally be called by users: user-level macros, such as
+% \cs{sethebrew} and \cs{unsethebrew}, as well as \babel 's
+% \cs{selectlanguage} are defined in language-definition files and
+% should be used to change default language (and direction).
+%
+% Local direction changing commands (for small pieces of text):
+% |\L{}|, |\R{}|, |\embox{}| and |\hmbox{}| are defined below in
+% this file in language-independent manner.
+%
+% \begin{macro}{\if@rl}
+% \begin{description}\scrunch
+% \item[|\@rltrue|] means that the main mode is currently
+% Right-to-Left.
+% \item[|\@rlfalse|] means that the main mode is currently
+% Left-to-Right.
+% \end{description}
+% \begin{macrocode}
+\newif\if@rl
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@rlmain}
+% This is the main direction of the document. Unlike |\if@rl|
+% it is set once and never changes.
+% \begin{description}\scrunch
+% \item[|\@rltrue|] means that the document is Right-to-Left.
+% \item[|\@rlfalse|] means that the document is Left-to-Right.
+% \end{description}
+% Practically |\if@rlmain| is set according to the value of |\if@rl|
+% in the beginning of the run.
+% \begin{macrocode}
+\AtBeginDocument{% Here we set the main document direction
+ \newif\if@rlmain%
+ \if@rl% e.g: if the options to babel were [english,hebrew]
+ \@rlmaintrue%
+ \else% e.g: if the options to babel were [hebrew,english]
+ \@rlmainfalse%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@torl}
+% Switches current direction to Right-to-Left: saves current
+% Left-to-Right encoding in |\lr@encodingdefault|, sets required
+% Right-to-Left language name in |\@rllanguagename| (similar to
+% \babel 's |\languagename|) and changes derection.
+%
+% The Right-to-Left language encoding should be defined in |.ldf|
+% file as special macro created by concatenation of the language
+% name and string \texttt{encoding}, for example, for Hebrew it
+% will be |\hebrewencoding|.
+% \begin{macrocode}
+\DeclareRobustCommand{\@torl}[1]{%
+ \if@rl\else%
+ \let\lr@encodingdefault=\encodingdefault%
+ \fi%
+ \def\@rllanguagename{#1}%
+ \def\encodingdefault{\csname#1encoding\endcsname}%
+ \fontencoding{\encodingdefault}%
+ \selectfont%
+ \@rltrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@fromrl}
+% Opposite to |\@torl|, switches current direction to
+% Left-to-Right: restores saved Left-to-Right encoding
+% (|\lr@encodingdefault|) and changes direction.
+% \begin{macrocode}
+\DeclareRobustCommand{\@fromrl}{%
+ \if@rl%
+ \let\encodingdefault=\lr@encodingdefault%
+ \fi%
+ \fontencoding{\encodingdefault}%
+ \selectfont%
+ \@rlfalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\selectlanguage}
+% This standard \babel 's macro should be redefined to support
+% bidirectional tables. We divide |\selectlanguage| implementation
+% to two parts, and the first part calls the second
+% |\@@selectlanguage|.
+% \begin{macrocode}
+\expandafter\def\csname selectlanguage \endcsname#1{%
+ \edef\languagename{%
+ \ifnum\escapechar=\expandafter`\string#1\@empty
+ \else \string#1\@empty\fi}%
+ \@@selectlanguage{\languagename}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@selectlanguage}
+% This new internal macro redefines a final part of the standard
+% \babel 's |\select|\-|language| implementation.
+%
+% Standard \LaTeX\ provides us with 3 tables: Table of Contents
+% (|.toc|), List of Figures (|.lof|), and List of Tables
+% (|.lot|). In multi-lingual texts mixing Left-to-Right languages
+% with Right-to-Left ones, the use of various directions in one
+% table results in very ugly output. Therefore, these 3 standard
+% tables will be used now only for Left-to-Right languages, and we
+% will add 3 Right-to-Left tables (their extensions are simply
+% reversed ones): RL Table of Contents (|.cot|), RL List of Figures
+% (|.fol|), and RL List of Tables (|.lof|).
+% \begin{macrocode}
+\def\@@selectlanguage#1{%
+ \select@language{#1}%
+ \if@filesw
+ \protected@write\@auxout{}{\string\select@language{#1}}%
+ \if@rl%
+ \addtocontents{cot}{\xstring\select@language{#1}}%
+ \addtocontents{fol}{\xstring\select@language{#1}}%
+ \addtocontents{tol}{\xstring\select@language{#1}}%
+ \else%
+ \addtocontents{toc}{\xstring\select@language{#1}}%
+ \addtocontents{lof}{\xstring\select@language{#1}}%
+ \addtocontents{lot}{\xstring\select@language{#1}}%
+ \fi%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setrllanguage}
+% \begin{macro}{\unsetrllanguage}
+% The |\setrllanguage| and |\unsetrllanguage| pair of macros is
+% proved to very useful in bilingual texts, for example, in
+% Hebrew-English texts. The language-specific commands, for example,
+% |\sethebrew| and |\unsethebrew| use these macros as basis.
+%
+% Implementation saves and restores other language in
+% |\other@languagename| variable, and uses internal macro
+% |\@@selectlanguage|, defined above, to switch between languages.
+% \begin{macrocode}
+\let\other@languagename=\languagename
+\DeclareRobustCommand{\setrllanguage}[1]{%
+ \if@rl\else%
+ \let\other@languagename=\languagename%
+ \fi%
+ \def\languagename{#1}%
+ \@@selectlanguage{\languagename}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\unsetrllanguage}[1]{%
+ \if@rl%
+ \let\languagename=\other@languagename%
+ \fi
+ \@@selectlanguage{\languagename}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\L}
+% \begin{macro}{\R}
+% \begin{macro}{\HeblatexRedefineL}
+% Macros for changing direction, originally taken from TUGboat.
+% Usage: |\L{|\emph{Left to Right text}|}| and |\R{|\emph{Right to
+% Left text}|}|. Numbers should also be enclosed in |\L{}|, as in
+% |\L{123}|.
+%
+% Note, that these macros do not receive language name as
+% parameter. Instead, the saved |\@rllanguagename| will be
+% used. We assume that each Right-to-Left language defines
+% |\to|\emph{languagename} and |\from|\emph{languagename} macros in
+% language definition file, for example, for Hebrew: |\tohebrew|
+% and |\fromhebrew| macros in \pkg{hebrew.ldf} file.
+%
+% The macros \cs{L} and \cs{R} include `protect' to to make them robust and
+% allow use, for example, in tables.
+%
+% Due to the fact that some packages have different definitions for \cs{L}
+% the macro |\HeblatexRedefineL| is provided to overide them. This may
+% be required with hyperref, for instance.
+% \begin{macrocode}
+\let\next=\
+\def\HeblatexRedefineL{%
+ \def\L{\protect\pL}%
+}
+\HeblatexRedefineL
+\def\pL{\protect\afterassignment\moreL \let\next= }
+\def\moreL{\bracetext \aftergroup\endL \beginL\csname
+ from\@rllanguagename\endcsname}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\R{\protect\pR}
+\def\pR{\protect\afterassignment\moreR \let\next= }
+\def\moreR{\bracetext \aftergroup\endR \beginR\csname
+ to\@rllanguagename\endcsname}
+\def\bracetext{\ifcat\next{\else\ifcat\next}\fi
+ \errmessage{Missing left brace has been substituted}\fi \bgroup}
+\everydisplay{\if@rl\aftergroup\beginR\fi }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@ensure@R}
+% \begin{macro}{\@ensure@L}
+% Two small internal macros, a-la |\ensuremath|
+% \begin{macrocode}
+\def\@ensure@R#1{\if@rl#1\else\R{#1}\fi}
+\def\@ensure@L#1{\if@rl\L{#1}\else#1\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Take care of Right-to-Left indentation in every paragraph.
+% Originally, \cs{noindent} was redefined for right-to-left by
+% Yaniv Bargury, then the implementation was rewritten by Alon Ziv
+% using an idea by Chris Rowley: \cs{noindent} now works
+% unmodified.
+% \begin{macrocode}
+\def\rl@everypar{\if@rl{\setbox\z@\lastbox\beginR\usebox\z@}\fi}
+\let\o@everypar=\everypar
+\def\everypar#1{\o@everypar{\rl@everypar#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\hmbox}
+% \begin{macro}{\embox}
+% Useful vbox commands. All text in math formulas is best enclosed
+% in these: LR text in |\embox| and RL text in |\hmbox|. |\mbox{}|
+% is useless for both cases, since it typesets in Left-to-Right
+% even for Right-to-Left languages (additions by Yaniv Bargury).
+% \begin{macrocode}
+\newcommand{\hmbox}[1]{\mbox{\R{#1}}}
+\newcommand{\embox}[1]{\mbox{\L{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@brackets}
+% When in Right-to-Left mode, brackets should be swapped. This
+% macro receives 3 parameters: left bracket, content, right
+% bracket. Brackets can be square brackets, braces, or
+% parentheses.
+% \begin{macrocode}
+\def\@brackets#1#2#3{\protect\if@rl #3#2#1\protect\else
+ #1#2#3\protect\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@number}
+% \begin{macro}{\@latin}
+% \cs{@number} preserves numbers direction from Left to Right.
+% \cs{@latin} in addition switches current encoding to the latin.
+% \begin{macrocode}
+\def\@@number#1{\ifmmode\else\beginL\fi#1\ifmmode\else\endL\fi}
+\def\@@latin#1{\@@number{{\@fromrl#1}}}
+\def\@number{\protect\@@number}
+\def\@latin{\protect\@@latin}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Counters}
+%
+% To make counter references work in Right to Left text, we need
+% to surround their original definitions with an
+% |\@number{|\ldots|}| or |\@latin{|\ldots|}|. Note, that
+% language-specific counters, such as \cs{hebr} or \cs{gim} are
+% provided with language definition file.
+%
+% We start with saving the original definitions:
+% \begin{macrocode}
+\let\@@arabic=\@arabic
+\let\@@roman=\@roman
+\let\@@Roman=\@Roman
+\let\@@alph=\@alph
+\let\@@Alph=\@Alph
+% \end{macrocode}
+%
+% \begin{macro}{\@arabic}
+% \begin{macro}{\@roman}
+% \begin{macro}{\@Roman}
+% Arabic and roman numbers should be from Left to Right. In
+% addition, roman numerals, both lower- and upper-case should be in
+% latin encoding.
+% \begin{macrocode}
+\def\@arabic#1{\@number{\@@arabic#1}}
+\def\@roman#1{\@latin{\@@roman#1}}
+\def\@Roman#1{\@latin{\@@Roman#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\arabicnorl}
+% This macro preserves the original definition of |\arabic|
+% (overrides the overriding of |\@arabic|)
+% \begin{macrocode}
+\def\arabicnorl#1{\expandafter\@@arabic\csname c@#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\make@lr}
+% In Right to Left documents all counters defined in the standard
+% document classes \emph{article}, \emph{report} and \emph{book}
+% provided with \LaTeXe, such as |\thesection|, |\thefigure|,
+% |\theequation| should be typed as numbers from left to right. To
+% ensure direction, we use the following
+% |\make@lr{|\emph{counter}|}| macro:
+% \begin{macrocode}
+\def\make@lr#1{\begingroup
+ \toks@=\expandafter{#1}%
+ \edef\x{\endgroup
+ \def\noexpand#1{\noexpand\@number{\the\toks@}}}%
+ \x}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{%
+ \@ifclassloaded{slides}{}{%
+ \make@lr\thesection
+ \make@lr\thesubsection
+ \make@lr\thesubsubsection
+ \make@lr\theparagraph
+ \make@lr\thesubparagraph
+ \make@lr\thefigure
+ \make@lr\thetable
+ }
+ \make@lr\theequation
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Preserving logos}
+%
+% Preserve \TeX, \LaTeX\ and \LaTeXe\ logos.
+% \begin{macro}{\TeX}
+% \begin{macrocode}
+\let\@@TeX\TeX
+\def\TeX{\@latin{\@@TeX}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaTeX}
+% \begin{macrocode}
+\let\@@LaTeX\LaTeX
+\def\LaTeX{\@latin{\@@LaTeX}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\LaTeXe}
+% \begin{macrocode}
+\let\@@LaTeXe\LaTeXe
+\def\LaTeXe{\@latin{\@@LaTeXe}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{List environments}
+%
+% List environments in Right-to-Left languages, are ticked and
+% indented from the right instead of from the left. All the
+% definitions that caused indentation are revised for Right-to-Left
+% languages. \LaTeX\ keeps track on the indentation with the
+% \cs{leftmargin} and \cs{rightmargin} values.
+%
+% \begin{macro}{list}
+% Thus we need to override the definition of the |\list| macro: when
+% in RTL mode, the right margins are the begining of the line.
+% \begin{macrocode}
+\def\list#1#2{%
+ \ifnum \@listdepth >5\relax
+ \@toodeep
+ \else
+ \global\advance\@listdepth\@ne
+ \fi
+ \rightmargin\z@
+ \listparindent\z@
+ \itemindent\z@
+ \csname @list\romannumeral\the\@listdepth\endcsname
+ \def\@itemlabel{#1}%
+ \let\makelabel\@mklab
+ \@nmbrlistfalse
+ #2\relax
+ \@trivlist
+ \parskip\parsep
+ \parindent\listparindent
+ \advance\linewidth -\rightmargin
+ \advance\linewidth -\leftmargin
+% \end{macrocode}
+% The only change in the macro is the |\if@rl| case:
+% \begin{macrocode}
+ \if@rl
+ \advance\@totalleftmargin \rightmargin
+ \else
+ \advance\@totalleftmargin \leftmargin
+ \fi
+ \parshape \@ne \@totalleftmargin \linewidth
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\labelenumii}
+% \begin{macro}{\p@enumiii}
+% The \cs{labelenumii} and \cs{p@enumiii} commands use
+% \emph{parentheses}. They are revised to work Right-to-Left with
+% the help of \cs{@brackets} macro defined above.
+% \begin{macrocode}
+\def\labelenumii{\@brackets(\theenumii)}
+\def\p@enumiii{\p@enumii\@brackets(\theenumii)}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Tables of moving stuff}
+%
+% Tables of moving arguments: table of contents (|toc|), list of
+% figures (|lof|) and list of tables (|lot|) are handles here. These
+% three default \LaTeX\ tables will be used now exclusively for
+% Left to Right stuff.
+%
+% Three additional Right-to-Left tables: RL table of contents
+% (|cot|), RL list of figures (|fol|), and RL list of tables
+% (|tol|) are added.
+% These three tables will be used exclusively for Right to
+% Left stuff.
+%
+% \begin{macro}{\@tableofcontents}
+% \begin{macro}{\@listoffigures}
+% \begin{macro}{\@listoftables}
+% We define 3 new macros similar to the standard \LaTeX\ tables,
+% but with one parameter --- table file extension. These macros
+% will help us to define our additional tables below.
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{% other
+\@ifclassloaded{slides}{}{% other
+ \@ifclassloaded{article}{% article
+ \newcommand\@tableofcontents[1]{%
+ \section*{\contentsname\@mkboth%
+ {\MakeUppercase\contentsname}%
+ {\MakeUppercase\contentsname}}%
+ \@starttoc{#1}}
+ \newcommand\@listoffigures[1]{%
+ \section*{\listfigurename\@mkboth%
+ {\MakeUppercase\listfigurename}%
+ {\MakeUppercase\listfigurename}}%
+ \@starttoc{#1}}
+ \newcommand\@listoftables[1]{%
+ \section*{\listtablename\@mkboth%
+ {\MakeUppercase\listtablename}%
+ {\MakeUppercase\listtablename}}%
+ \@starttoc{#1}}}%
+ {% else report or book
+ \newcommand\@tableofcontents[1]{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn%
+ \fi\chapter*{\contentsname\@mkboth%
+ {\MakeUppercase\contentsname}%
+ {\MakeUppercase\contentsname}}%
+ \@starttoc{#1}\if@restonecol\twocolumn\fi}
+ \newcommand\@listoffigures[1]{%
+ \@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn%
+ \fi\chapter*{\listfigurename\@mkboth%
+ {\MakeUppercase\listfigurename}%
+ {\MakeUppercase\listfigurename}}%
+ \@starttoc{#1}\if@restonecol\twocolumn\fi}
+ \newcommand\@listoftables[1]{%
+ \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi%
+ \chapter*{\listtablename\@mkboth%
+ {\MakeUppercase\listtablename}%
+ {\MakeUppercase\listtablename}}%
+ \@starttoc{#1}\if@restonecol\twocolumn\fi}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lrtableofcontents}
+% \begin{macro}{\lrlistoffigures}
+% \begin{macro}{\lrlistoftables}
+% Left-to-Right tables are called now |\lr|\emph{xxx} and defined
+% with the aid of three macros defined above (extensions |toc|,
+% |lof|, and |lot|).
+% \begin{macrocode}
+ \newcommand\lrtableofcontents{\@tableofcontents{toc}}%
+ \newcommand\lrlistoffigures{\@listoffigures{lof}}%
+ \newcommand\lrlistoftables{\@listoftables{lot}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rltableofcontents}
+% \begin{macro}{\rllistoffigures}
+% \begin{macro}{\rllistoftables}
+% Right-to-Left tables will be called |\rl|\emph{xxx} and defined
+% with the aid of three macros defined above (extensions |cot|,
+% |fol|, and |tol|).
+% \begin{macrocode}
+ \newcommand\rltableofcontents{\@tableofcontents{cot}}%
+ \newcommand\rllistoffigures{\@listoffigures{fol}}%
+ \newcommand\rllistoftables{\@listoftables{tol}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tableofcontents}
+% \begin{macro}{\listoffigures}
+% \begin{macro}{\listoftables}
+% Let |\|\emph{xxx} be |\rl|\emph{xxx} if the current direction is
+% Right-to-Left and |\lr|\emph{xxx} if it is Left-to-Right.
+% \begin{macrocode}
+ \renewcommand\tableofcontents{\if@rl\rltableofcontents%
+ \else\lrtableofcontents\fi}
+ \renewcommand\listoffigures{\if@rl\rllistoffigures%
+ \else\lrlistoffigures\fi}
+ \renewcommand\listoftables{\if@rl\rllistoftables%
+ \else\lrlistoftables\fi}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@dottedtocline}
+% The following makes problems when making a Right-to-Left tables,
+% since it uses \cs{leftskip} and \cs{rightskip} which are both
+% mode dependent.
+% \begin{macrocode}
+\def\@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\if@rl\rightskip\else\leftskip\fi #2\relax
+ \if@rl\leftskip\else\rightskip\fi \@tocrmarg \parfillskip
+ -\if@rl\leftskip\else\rightskip\fi
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\if@rl\rightskip\else\leftskip\fi \@tempdima
+ \null\nobreak\hskip -\if@rl\rightskip\else\leftskip\fi
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor \beginL#5\endL}%
+ \par}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@part}
+% This standard macro was redefined for table of contents since it
+% uses \cs{rightskip} which is mode dependent.
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{% other
+\@ifclassloaded{slides}{}{% other
+\renewcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+ \setlength\@tempdima{3em}%
+ \parindent \z@ \if@rl\leftskip\else\rightskip\fi \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+ \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss#2}}\par
+ \nobreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \endgroup
+ \fi}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@part}
+% Part is redefined to support new Right-to-Left table of contents
+% (|cot|) as well as the Left-to-Right one (|toc|).
+% \begin{macrocode}
+\@ifclassloaded{article}{% article class
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \addcontentsline{cot}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \addcontentsline{cot}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \Large\bfseries \partname~\thepart
+ \par\nobreak
+ \fi
+ \huge \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}%
+}{% report and book classes
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \addcontentsline{cot}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \addcontentsline{cot}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname~\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect}
+% Section was redefined from the \pkg{latex.ltx} file. It is
+% changed to support both Left-to-Right (|toc|) and Right-to-Left
+% (|cot|) table of contents simultaneously.
+% \begin{macrocode}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \addcontentsline{cot}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \addcontentsline{cot}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}}%
+ \fi
+ \@xsect{#5}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@caption}
+% Caption was redefined from the \pkg{latex.ltx} file. It is
+% changed to support Left-to-Right list of figures and list of
+% tables (|lof| and |lot|) as well as new Right-to-Left lists
+% (|fol| and |tol|) simultaneously.
+% \begin{macrocode}
+\long\def\@caption#1[#2]#3{%
+ \par
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}%
+ {\ignorespaces #2}}%
+ \def\@fignm{figure}
+ \ifx#1\@fignm\addcontentsline{fol}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}%
+ {\ignorespaces #2}}\fi%
+ \def\@tblnm{table}
+ \ifx#1\@tblnm\addcontentsline{tol}{#1}%
+ {\protect\numberline{\csname the#1\endcsname}%
+ {\ignorespaces #2}}\fi%
+ \begingroup
+ \@parboxrestore
+ \if@minipage
+ \@setminipage
+ \fi
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@chapter}
+% This standard macro was redefined for table of contents since it
+% uses \cs{rightskip} which is mode dependent.
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{%
+\@ifclassloaded{slides}{}{%
+ \@ifclassloaded{article}{}{%
+ \renewcommand*\l@chapter[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \if@rl\leftskip\else\rightskip\fi \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\if@rl\rightskip\else\leftskip\fi\@tempdima
+ \hskip -\if@rl\rightskip\else\leftskip\fi
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss#2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@section}
+% \begin{macro}{\l@subsection}
+% \begin{macro}{\l@subsubsection}
+% \begin{macro}{\l@paragraph}
+% \begin{macro}{\l@subparagraph}
+% The toc entry for section did not work in article style.
+% Also it does not print dots, which is funny when most of your
+% work is divided into sections.
+%
+% It was revised to use |\@dottedtocline| as in \pkg{report.sty}
+% (by Yaniv Bargury) and was updated later for all kinds of
+% sections (by Boris Lavva).
+% \begin{macrocode}
+\@ifclassloaded{article}{%
+\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
+\renewcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+\renewcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
+\renewcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Two-column mode}
+%
+% This is the support of \texttt{twocolumn} option for the standard
+% \LaTeXe\ classes.
+% The following code was originally borrowed from the Arab\TeX\
+% package, file \pkg{latexext.sty}, copyright by Klaus Lagally,
+% Institut fuer Informatik, Universitaet Stuttgart. It was updated
+% for this package by Boris Lavva.
+%
+% \begin{macro}{\@outputdblcol}
+% \begin{macro}{\set@outputdblcol}
+% \begin{macro}{rl@outputdblcol}
+% First column is \cs{@leftcolumn} will be shown at the right side,
+% Second column is \cs{@outputbox} will be shown at the left side.
+%
+% |\set@outputdblcol| IS CURRENTLY DISABLED. TODO: REMOVE IT [tzafrir]
+% \begin{macrocode}
+\let\@@outputdblcol\@outputdblcol
+%\def\set@outputdblcol{%
+% \if@rl\renewcommand{\@outputdblcol}{\rl@outputdblcol}%
+% \else\renewcommand{\@outputdblcol}{\@@outputdblcol}\fi}
+\renewcommand{\@outputdblcol}{%
+ \if@rlmain%
+ \rl@outputdblcol%
+ \else%
+ \@@outputdblcol%
+ \fi%
+}
+\newcommand{\rl@outputdblcol}{%
+ \if@firstcolumn
+ \global \@firstcolumnfalse
+ \global \setbox\@leftcolumn \box\@outputbox
+ \else
+ \global \@firstcolumntrue
+ \setbox\@outputbox \vbox {\hb@xt@\textwidth {%
+ \hskip\columnwidth%
+ \hfil\vrule\@width\columnseprule\hfil
+ \hb@xt@\columnwidth {%
+ \box\@leftcolumn \hss}%
+ \hb@xt@\columnwidth {%
+ \hskip-\textwidth%
+ \box\@outputbox \hss}%
+ \hskip\columnsep%
+ \hskip\columnwidth}}%
+ \@combinedblfloats
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage
+ \@startdblcolumn}%
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Footnotes}
+%
+% \begin{macro}{\footnoterule}
+% The Right-to-Left footnote rule is simply reversed default
+% Left-to-Right one. Footnotes can be used in RL or LR main
+% modes, but changing mode while a footnote is pending is still
+% unsolved.
+% \begin{macrocode}
+\let\@@footnoterule=\footnoterule
+\def\footnoterule{\if@rl\hb@xt@\hsize{\hss\vbox{\@@footnoterule}}%
+ \else\@@footnoterule\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Headings and two-side support}
+%
+% When using \texttt{headings} or \texttt{myheadings} modes, we
+% have to ensure that the language and direction of heading is the
+% same as the whole chapter/part of the document. This is
+% implementing by setting special variable \cs{headlanguage} when
+% starting new chapter/part.
+%
+% In addition, when selecting the \texttt{twoside} option (default in
+% \texttt{book} document class), the LR and RL modes need to be set
+% properly for things on the heading and footing. This is done
+% here too.
+%
+% \begin{macro}{ps@headings}
+% \begin{macro}{ps@myheadings}
+% \begin{macro}{headeven}
+% \begin{macro}{headodd}
+% First, we will support the standard \pkg{letter} class:
+% \begin{macrocode}
+\@ifclassloaded{letter}{%
+ \def\headodd{\protect\if@rl\beginR\fi\headtoname{}
+ \ignorespaces\toname
+ \hfil \@date
+ \hfil \pagename{} \thepage\protect\if@rl\endR\fi}
+ \if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@oddhead{\select@language{\headlanguage}\headodd}
+ \let\@evenhead\@oddhead}
+ \else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{\select@language{\headlanguage}\headodd}}
+ \fi
+ \def\headfirst{\protect\if@rl\beginR\fi\fromlocation \hfill %
+ \telephonenum\protect\if@rl\endR\fi}
+ \def\ps@firstpage{%
+ \let\@oddhead\@empty
+ \def\@oddfoot{\raisebox{-45\p@}[\z@]{%
+ \hb@xt@\textwidth{\hspace*{100\p@}%
+ \ifcase \@ptsize\relax
+ \normalsize
+ \or
+ \small
+ \or
+ \footnotesize
+ \fi
+ \select@language{\headlanguage}\headfirst}}\hss}}
+%
+ \renewcommand{\opening}[1]{%
+ \let\headlanguage=\languagename%
+ \ifx\@empty\fromaddress%
+ \thispagestyle{firstpage}%
+ {\raggedleft\@date\par}%
+ \else % home address
+ \thispagestyle{empty}%
+ {\raggedleft
+ \if@rl\begin{tabular}{@{\beginR\csname%
+ to\@rllanguagename\endcsname}r@{\endR}}\ignorespaces
+ \fromaddress \\*[2\parskip]%
+ \@date \end{tabular}\par%
+ \else\begin{tabular}{l}\ignorespaces
+ \fromaddress \\*[2\parskip]%
+ \@date \end{tabular}\par%
+ \fi}%
+ \fi
+ \vspace{2\parskip}%
+ {\raggedright \toname \\ \toaddress \par}%
+ \vspace{2\parskip}%
+ #1\par\nobreak}
+}
+% \end{macrocode}
+% Then, the \pkg{article}, \pkg{report} and \pkg{book} document
+% classes are supported. Note, that in one-sided mode
+% \cs{markright} was changed to \cs{markboth}.
+% \begin{macrocode}
+{% article, report, book
+ \def\headeven{\protect\if@rl\beginR\thepage\hfil\rightmark\endR
+ \protect\else\thepage\hfil{\slshape\leftmark}
+ \protect\fi}
+ \def\headodd{\protect\if@rl\beginR\leftmark\hfil\thepage\endR
+ \protect\else{\slshape\rightmark}\hfil\thepage
+ \protect\fi}
+ \@ifclassloaded{article}{% article
+ \if@twoside % two-sided
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\select@language{\headlanguage}\headeven}%
+ \def\@oddhead{\select@language{\headlanguage}\headodd}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection\quad
+ \fi
+ ##1}}{}}%
+ \def\subsectionmark##1{%
+ \markright{%
+ \ifnum \c@secnumdepth >\@ne
+ \thesubsection\quad
+ \fi
+ ##1}}}
+ \else % one-sided
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{\headodd}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markboth{\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection\quad
+ \fi
+ ##1}}{\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection\quad
+ \fi
+ ##1}}}}
+ \fi
+%
+ \def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\select@language{\headlanguage}\headeven}%
+ \def\@oddhead{\select@language{\headlanguage}\headodd}%
+ \let\@mkboth\@gobbletwo
+ \let\sectionmark\@gobble
+ \let\subsectionmark\@gobble
+ }}{% report and book
+ \if@twoside % two-sided
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\select@language{\headlanguage}\headeven}
+ \def\@oddhead{\select@language{\headlanguage}\headodd}
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth{\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ %
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}}
+ \else % one-sided
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{\select@language{\headlanguage}\headodd}
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth{\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ %
+ \fi
+ ##1}}{\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \@chapapp\ \thechapter. \ %
+ \fi
+ ##1}}}}
+ \fi
+ \def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\select@language{\headlanguage}\headeven}%
+ \def\@oddhead{\select@language{\headlanguage}\headodd}%
+ \let\@mkboth\@gobbletwo
+ \let\chaptermark\@gobble
+ \let\sectionmark\@gobble
+ }}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Postscript Porblems}
+% Any command that is implemented by PostScript directives, e.g
+% commands from the ps-tricks package, needs to be fixed, because the
+% PostScript directives are being interpeted after the document has been
+% converted by \TeX to visual Hebrew (DVI, PostScript and PDF have visual
+% Hebrew).
+%
+% For instance: Suppose you wrote in your document:
+%
+% |\textcolor{cyan}{some ltr text}|
+%
+% This would be interpeted by \TeX to something like:
+%
+% |[postscript:make color cyan]some LTR text[postscript:make color black]|
+%
+%
+% However, with the bidirectionality support we get:
+%
+% |\textcolor{cyan}{\hebalef\hebbet}|
+%
+% Translated to:
+%
+% |[postscript:make color black]{bet}{alef}[postscript:make color cyan]|
+%
+% While we want:
+%
+% |[postscript:make color cyan]{bet}{alef}[postscript:make color black]|
+%
+% The following code will probably work at least with code that stays in the
+% same line:
+% \begin{macro}{@textcolor}
+% \begin{macrocode}
+\AtBeginDocument{%
+ %I assume that \@textcolor is only defined by the package color
+ \ifx\@textcolor\@undefined\else%
+ % If that macro was defined before the beginning of the document,
+ % that is: the package was loaded: redefine it with bidi support
+ \def\@textcolor#1#2#3{%
+ \if@rl%
+ \beginL\protect\leavevmode{\color#1{#2}\beginR#3\endR}\endL%
+ \else%
+ \protect\leavevmode{\color#1{#2}#3}%
+ \fi%
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\thetrueSlideCounter}
+% This macro probably needs to be overriden for when using |prosper|,
+% (waiting for feedback. Tzafrir)
+% \begin{macrocode}
+\@ifclassloaded{prosper}{%
+ \def\thetrueSlideCounter{\arabicnorl{trueSlideCounter}}
+}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Miscellaneous internal \LaTeX\ macros}
+%
+% \begin{macro}{\raggedright}
+% \begin{macro}{\raggedleft}
+% \cs{raggedright} was changed from \pkg{latex.ltx} file to support
+% Right-to-Left mode, because of the bug in its implementation.
+% \begin{macrocode}
+\def\raggedright{%
+ \let\\\@centercr
+ \leftskip\z@skip\rightskip\@flushglue
+ \parindent\z@\parfillskip\z@skip}
+% \end{macrocode}
+% Swap meanings of \cs{raggedright} and \cs{raggedleft} in
+% Right-to-Left mode.
+% \begin{macrocode}
+\let\@@raggedleft=\raggedleft
+\let\@@raggedright=\raggedright
+\renewcommand\raggedleft{\if@rl\@@raggedright%
+ \else\@@raggedleft\fi}
+\renewcommand\raggedright{\if@rl\@@raggedleft%
+ \else\@@raggedright\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\author}
+% \cs{author} is inserted with \texttt{tabular} environment, and
+% will be used in restricted horizontal mode. Therefore we have to
+% add explicit direction change command when in Right-to-Left
+% mode.
+% \begin{macrocode}
+\let\@@author=\author
+\renewcommand{\author}[1]{\@@author{\if@rl\beginR #1\endR\else #1\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MakeUppercase}
+% \begin{macro}{\MakeLowercase}
+% There are no uppercase and lowercase letters in most
+% Right-to-Left languages, therefore we should redefine
+% \cs{MakeUppercase} and \cs{MakeLowercase} \LaTeXe\ commands.
+% \begin{macrocode}
+\let\@@MakeUppercase=\MakeUppercase
+\def\MakeUppercase#1{\if@rl#1\else\@@MakeUppercase{#1}\fi}
+\let\@@MakeLowercase=\MakeLowercase
+\def\MakeLowercase#1{\if@rl#1\else\@@MakeLowercase{#1}\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\underline}
+% We should explicitly use \cs{L} and \cs{R} commands in
+% \cs{underline}d text.
+% \begin{macrocode}
+\let\@@@underline=\underline
+\def\underline#1{\@@@underline{\if@rl\R{#1}\else #1\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \cs{undertext} was added for \LaTeX 2.09 compatibility mode.
+% \begin{macrocode}
+\if@compatibility
+ \let\undertext=\underline
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\@xnthm}
+% \begin{macro}{\@opargbegintheorem}
+% The following has been inserted to correct the appearance of the
+% number in \cs{newtheorem} to reorder theorem number components. A
+% similar correction in the definition of \cs{@opargbegintheorem}
+% was added too.
+% \begin{macrocode}
+\def\@xnthm#1#2[#3]{%
+ \expandafter\@ifdefinable\csname #1\endcsname
+ {\@definecounter{#1}\@addtoreset{#1}{#3}%
+ \expandafter\xdef\csname the#1\endcsname{\noexpand\@number
+ {\expandafter\noexpand\csname the#3\endcsname \@thmcountersep
+ \@thmcounter{#1}}}%
+ \global\@namedef{#1}{\@thm{#1}{#2}}%
+ \global\@namedef{end#1}{\@endtheorem}}}
+%
+\def\@opargbegintheorem#1#2#3{%
+ \trivlist
+ \item[\hskip \labelsep{\bfseries #1\ #2\
+ \@brackets({#3})}]\itshape}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@chapter}
+% \begin{macro}{\@schapter}
+% The following was added for pretty printing of the chapter
+% numbers, for supporting Right-to-Left tables (\texttt{cot},
+% \texttt{fol}, and \texttt{tol}), to save \cs{headlanguage}
+% for use in running headers, and to start two-column mode
+% depending on chapter's main language.
+% \begin{macrocode}
+\@ifclassloaded{article}{}{%
+ % For pretty priniting
+ \def\@@chapapp{Chapter}
+ \def\@@thechapter{\@@arabic\c@chapter}
+ \def\@chapter[#1]#2{%
+ \let\headlanguage=\languagename%
+ %\set@outputdblcol%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@@chapapp\space\@@thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}
+ \addcontentsline{cot}{chapter}%
+ {\protect\numberline{\thechapter}#1}
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \addcontentsline{cot}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{fol}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \addtocontents{tol}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+ %
+ \def\@schapter#1{%
+ \let\headlanguage=\languagename%
+ %\set@outputdblcol%
+ \if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\appendix}
+% Changed mainly for pretty printing of appendix numbers, and to
+% start two-column mode with the right language (if needed).
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{% other
+\@ifclassloaded{slides}{}{% other
+ \@ifclassloaded{article}{% article
+ \renewcommand\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \renewcommand\thesection{\@Alph\c@section}}
+ }{% report and book
+ \renewcommand\appendix{\par
+ %\set@outputdblcol%
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \renewcommand\@chapapp{\appendixname}%
+ % For pretty priniting
+ \def\@@chapapp{Appendix}%
+ \def\@@thechapter{\@@Alph\c@chapter}
+ \renewcommand\thechapter{\@Alph\c@chapter}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Bibliography and citations}
+%
+% \begin{macro}{\@cite}
+% \begin{macro}{\@biblabel}
+% \begin{macro}{\@lbibitem}
+% Citations are produced by the macro
+% |\@cite{|\emph{LABEL}|}{|\emph{NOTE}|}|. Both the citation label
+% and the note is typeset in the current direction. We have to use
+% \cs{@brackets} macro in \cs{@cite} and \cs{@biblabel} macros. In
+% addition, when using \emph{alpha} or similar bibliography style,
+% the \cs{@lbibitem} is used and have to be update to support bot
+% Right-to-Left and Left-to-Right citations.
+%
+% \begin{macrocode}
+\def\@cite#1#2{\@brackets[{#1\if@tempswa , #2\fi}]}
+\def\@biblabel#1{\@brackets[{#1}]}
+\def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
+ {\let\protect\noexpand
+ \immediate
+ \if@rl\write\@auxout{\string\bibcite{#2}{\R{#1}}}%
+ \else\write\@auxout{\string\bibcite{#2}{\L{#1}}}\fi%
+ }\fi\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{thebibliography}
+% Use \cs{rightmargin} instead of \cs{leftmargin} when in RL mode.
+% \begin{macrocode}
+\@ifclassloaded{letter}{}{% other
+\@ifclassloaded{slides}{}{% other
+\@ifclassloaded{article}{%
+ \renewenvironment{thebibliography}[1]
+ {\section*{\refname\@mkboth%
+ {\MakeUppercase\refname}%
+ {\MakeUppercase\refname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \if@rl\leftmargin\else\rightmargin\fi\labelwidth
+ \advance\if@rl\leftmargin\else\rightmargin\fi\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}}%
+{\renewenvironment{thebibliography}[1]{%
+ \chapter*{\bibname\@mkboth%
+ {\MakeUppercase\bibname}%
+ {\MakeUppercase\bibname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \if@rl\leftmargin\else\rightmargin\fi\labelwidth
+ \advance\if@rl\leftmargin\else\rightmargin\fi\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}}}}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\@verbatim}
+% All kinds of verbs (\cs{verb},\cs{verb*},\texttt{verbatim} and
+% \texttt{verbatim*}) now can be used in Right-to-Left mode. Errors
+% in latin mode solved too.
+% \begin{macrocode}
+\def\@verbatim{%
+ \let\do\@makeother \dospecials%
+ \obeylines \verbatim@font \@noligs}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makecaption}
+% Captions are set always centered. This allows us to use bilingual
+% captions, for example: |\caption{\R{RLtext} \\ \L{LRtext}}|,
+% which will be formatted as:
+% \begin{center}
+% Right to left caption here (RLtext) \\
+% Left to right caption here (LRtext)
+% \end{center}
+% See also \cs{bcaption} command below.
+% \begin{macrocode}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip%
+ \begin{center}%
+ #1: #2%
+ \end{center} \par%
+ \vskip\belowcaptionskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Additional bidirectional commands}
+%
+% \begin{itemize}
+% \item Section headings are typeset with the default global
+% direction.
+% \item Text in section headings in the reverse language \emph{do
+% not} have to be protected for the reflection command, as in:
+% |\protect\L{|\emph{Latin Text}|}|, because \cs{L} and \cs{R} are
+% robust now.
+% \item Table of contents, list of figures and list of tables
+% should be typeset with the \cs{tableofcontents},
+% \cs{listoffigures} and \cs{listoftables} commands respectively.
+% \item The above tables will be typeset in the main direction (and
+% language) in effect where the above commands are placed.
+% \item Only 2 tables of each kind are supported: one for
+% Right-to-Left and another for Left-to-Right directions.
+% \end{itemize}
+%
+% How to include line to both tables? One has to use bidirectional
+% sectioning commands as following:
+% \begin{enumerate}
+% \item Use the |\b|\emph{xxx} version of the sectioning commands
+% in the text instead of the |\|\emph{xxx} version (\emph{xxx} is
+% one of: \texttt{part}, \texttt{chapter}, \texttt{section},
+% \texttt{subsection}, \texttt{subsubsection}, \texttt{caption}).
+% \item Syntax of the |\b|\emph{xxx} command is
+% |\b|\emph{xxx}|{|\emph{RL text}|}{|\emph{LR text}|}|.
+% Both arguments are typeset in proper direction by default (no
+% need to change direction for the text inside).
+% \item The section header inside the document will be typeset in
+% the global direction in effect at the time. i.e. The |{|\emph{RL
+% text}|}| will be typeset if Right-to-Left mode is in effect and
+% |{|\emph{LR text}|}| otherwise.
+% \end{enumerate}
+%
+% \begin{macro}{\bpart}
+% \begin{macrocode}
+\newcommand{\bpart}[2]{\part{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bchapter}
+% \begin{macrocode}
+\newcommand{\bchapter}[2]{\chapter{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bsection}
+% \begin{macrocode}
+\newcommand{\bsection}[2]{\section{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bsubsection}
+% \begin{macrocode}
+\newcommand{\bsubsection}[2]{\subsection{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bsubsubsection}
+% \begin{macrocode}
+\newcommand{\bsubsubsection}[2]{\subsubsection{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bcaption}
+% \begin{macrocode}
+\newcommand{\bcaption}[2]{%
+ \caption[\protect\if@rl \R{#1}\protect\else \L{#2}\protect\fi]{%
+ \if@rl\R{#1}\protect\\ \L{#2}
+ \else\L{#2}\protect\\ \R{#1}\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% The following definition is a modified version of \cs{bchapter}, meant
+% as a bilingual twin for \cs{chapter*} and \cs{section*}
+% (added by Irina Abramovici).
+%
+% \begin{macro}{\bchapternn}
+% \begin{macrocode}
+\newcommand{\bchapternn}[2]{\chapter*{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bsectionnn}
+% \begin{macrocode}
+\newcommand{\bsectionnn}[2]{\section*{\protect\if@rl%
+ #1 \protect\else #2 \protect\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% Finally, at end of \babel\ package, the \cs{headlanguage} and
+% two-column mode will be initialized according to the current
+% language.
+% \begin{macrocode}
+\AtEndOfPackage{\rlAtEndOfPackage}
+%
+\def\rlAtEndOfPackage{%
+ \global\let\headlanguage=\languagename%\set@outputdblcol%
+}
+%</rightleft>
+% \end{macrocode}
+%
+% \subsection{Hebrew calendar}
+%
+% The original version of the package \pkg{hebcal.sty}\footnote{The
+% following description of \pkg{hebcal} package is based on the
+% comments included with original source by the author, Michail
+% Rozman.} for \TeX\ and \LaTeX2.09, entitled ``\TeX{} \& \LaTeX{}
+% macros for computing Hebrew date from Gregorian one'' was created
+% by Michail Rozman, |misha@iop.tartu.ew.su|\footnote{Please direct
+% any comments, bug reports, questions, etc. about the package to
+% this address.}
+%
+% \begin{tabular}{@{}lr@{}c@{}ll}
+% Released: &Tammuz 12, 5751&--&June 24, 1991 &\\
+% Corrected:&Shebat 10, 5752&--&January 15, 1992&by Rama Porrat\\
+% Corrected:&Adar II 5, 5752&--&March 10, 1992 &by Misha\\
+% Corrected:&Tebeth, 5756 &--&January 1996 &Dan Haran\\
+% &&&&(haran@math.tau.ac.il)
+% \end{tabular}
+%
+% The package was adjusted for \babel{} and \LaTeXe{} by Boris
+% Lavva.
+%
+% Changes to the printing routine (only) by Ron Artstein, June 1,
+% 2003.
+%
+% This package should be included \emph{after} the \pkg{babel} with
+% \pkg{hebrew} option, as following:
+% \begin{quote}
+% |\documentclass[|\ldots|]{|\ldots|}|\\
+% |\usepackage[hebrew,|\ldots|,|\emph{other languages}|,|
+% \ldots|]{babel}|\\
+% |\usepackage{hebcal}|
+% \end{quote}
+%
+% Two main user-level commands are provided by this package:
+%
+% \DescribeMacro{\Hebrewtoday}
+% Computes today's Hebrew date and prints it. If we are presently
+% in Hebrew mode, the date will be printed in Hebrew, otherwise ---
+% in English (like Shebat 10, 5752).
+%
+% \DescribeMacro{\Hebrewdate}
+% Computes the Hebrew date from the given Gregorian date and
+% prints it. If we are presently in Hebrew mode, the date will be
+% printed in Hebrew, otherwise --- in English (like Shebat 10,
+% 5752). An example of usage is shown below:
+% \begin{quote}
+% |\newcount\hd \newcount\hm \newcount\hy|\\
+% |\hd=10 \hm=3 \hy=1992|\\
+% |\Hebrewdate{\hd}{\hm}{\hy}|
+% \end{quote}
+%
+% \DescribeMacro{full}
+% The package option |full| sets the flag |\@full@hebrew@year|,
+% which causes years from the current millenium to be printed with
+% the thousands digit (he-tav-shin-samekh-gimel). Without this
+% option, thousands are not printed for the current millenium.
+% NOTE: should this be a command option rather than a package
+% option? --RA.
+%
+% \subsubsection{Introduction}
+%
+% The Hebrew calendar is inherently complicated: it is lunisolar --
+% each year starts close to the autumn equinox, but each month must
+% strictly start at a new moon. Thus Hebrew calendar must be
+% harmonized simultaneously with both lunar and solar events. In
+% addition, for reasons of the religious practice, the year cannot
+% start on Sunday, Wednesday or Friday.
+%
+% For the full description of Hebrew calendar and for the list of
+% references see:
+% \begin{quote}
+% Nachum Dershowitz and Edward M. Reingold,
+% \emph{``Calendarical Calculations''}, Software--Pract.Exper.,
+% vol. 20 (9), pp.899--928 (September 1990).
+% \end{quote}
+% |C| translation of |LISP| programs from the above article
+% available from Mr. Wayne Geiser, |geiser%pictel@uunet.uu.net|.
+%
+% The 4\textsuperscript{th} distribution (July 1989) of hdate/hcal
+% (Hebrew calendar programs similar to UNIX date/cal) by Mr. Amos
+% Shapir, |amos@shum.huji.ac.il|, contains short and very clear
+% description of algorithms.
+%
+% \subsubsection{Registers, Commands, Formatting Macros}
+%
+% The command |\Hebrewtoday| produces today's date for Hebrew
+% calendar. It is similar to the standard \LaTeXe{} command
+% |\today|. In addition three numerical registers |\Hebrewday|,
+% |\Hebrewmonth| and |\Hebrewyear| are set.
+% For setting this registers without producing of date string
+% command |\Hebrewsetreg| can be used.
+%
+% The command
+% |\Hebrewdate{|\emph{Gday}|}{|\emph{Gmonth}|}{|\emph{Gyear}|}|
+% produces Hebrew calendar date corresponding to Gregorian date
+% |Gday.Gmonth.Gyear|. Three numerical registers |\Hebrewday|,
+% |\Hebrewmonth| and |\Hebrewyear| are set.
+%
+% For converting arbitrary Gregorian date |Gday.Gmonth.Gyear|
+% to Hebrew date |Hday.Hmonth.Hyear| without producing date string
+% the command:
+% \begin{center}
+% |\HebrewFromGregorian{|\emph{Gday}|}{|\emph{Gmonth}|}{|%
+% \emph{Gyear}|}{|\emph{Hday}|}{|\emph{Hmonth}|}{|\emph{Hyear}|}|
+% \end{center}
+% can be used.
+%
+% \begin{macrocode}
+%<*calendar>
+\newif\if@full@hebrew@year
+\@full@hebrew@yearfalse
+\DeclareOption{full}{\@full@hebrew@yeartrue}
+\ProcessOptions
+\newcount\Hebrewday \newcount\Hebrewmonth \newcount\Hebrewyear
+% \end{macrocode}
+%
+% \begin{macro}{\Hebrewdate}
+% Hebrew calendar date corresponding to Gregorian date
+% |Gday.Gmonth.Gyear|. If Hebrew (right-to-left) fonts \& macros
+% are not loaded, we have to use English format.
+% \begin{macrocode}
+\def\Hebrewdate#1#2#3{%
+ \HebrewFromGregorian{#1}{#2}{#3}
+ {\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
+ \ifundefined{if@rl}%
+ \FormatForEnglish{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
+ \else%
+ \FormatDate{\Hebrewday}{\Hebrewmonth}{\Hebrewyear}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Hebrewtoday}
+% Today's date in Hebrew calendar.
+% \begin{macrocode}
+\def\Hebrewtoday{\Hebrewdate{\day}{\month}{\year}}
+\let\hebrewtoday=\Hebrewtoday
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Hebrewsetreg}
+% Set registers: today's date in hebrew calendar.
+% \begin{macrocode}
+\def\Hebrewsetreg{%
+ \HebrewFromGregorian{\day}{\month}{\year}
+ {\Hebrewday}{\Hebrewmonth}{\Hebrewyear}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FormatDate}
+% Prints a Hebrew calendar date |Hebrewday.Hebrewmonth.Hebrewyear|.
+% \begin{macrocode}
+\def\FormatDate#1#2#3{%
+ \if@rl%
+ \FormatForHebrew{#1}{#2}{#3}%
+ \else%
+ \FormatForEnglish{#1}{#2}{#3}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% To prepare another language version of Hebrew calendar commands,
+% one should change or add commands here.
+%
+% We start with Hebrew language macros.
+% \begin{macro}{\HebrewYearName}
+% Prints Hebrew year as a Hebrew number. Disambiguates strings by
+% adding lamed-pe-gimel to years of the first Jewish millenium and
+% to years divisible by 1000. Suppresses the thousands digit in the
+% current millenium unless the package option |full| is selected.
+% NOTE: should this be provided as a command option rather than a
+% package option? --RA.
+% \begin{macrocode}
+\def\HebrewYearName#1{{%
+ \@tempcnta=#1\divide\@tempcnta by 1000\multiply\@tempcnta by 1000
+ \ifnum#1=\@tempcnta\relax % divisible by 1000: disambiguate
+ \Hebrewnumeralfinal{#1}\ )\heblamed\hebpe"\hebgimel(%
+ \else % not divisible by 1000
+ \ifnum#1<1000\relax % first millennium: disambiguate
+ \Hebrewnumeralfinal{#1}\ )\heblamed\hebpe"\hebgimel(%
+ \else
+ \ifnum#1<5000
+ \Hebrewnumeralfinal{#1}%
+ \else
+ \ifnum#1<6000 % current millenium, print without thousands
+ \@tempcnta=#1\relax
+ \if@full@hebrew@year\else\advance\@tempcnta by -5000\fi
+ \Hebrewnumeralfinal{\@tempcnta}%
+ \else % #1>6000
+ \Hebrewnumeralfinal{#1}%
+ \fi
+ \fi
+ \fi
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewMonthName}
+% The macro |\HebrewMonthName{|\emph{month}|}{|\emph{year}|}|
+% returns the name of month in the `year'.
+% \begin{macrocode}
+\def\HebrewMonthName#1#2{%
+ \ifnum #1 = 7 %
+ \CheckLeapHebrewYear{#2}%
+ \if@HebrewLeap \hebalef\hebdalet\hebresh\ \hebbet'%
+ \else \hebalef\hebdalet\hebresh%
+ \fi%
+ \else%
+ \ifcase#1%
+ % nothing for 0
+ \or\hebtav\hebshin\hebresh\hebyod%
+ \or\hebhet\hebshin\hebvav\hebfinalnun%
+ \or\hebkaf\hebsamekh\heblamed\hebvav%
+ \or\hebtet\hebbet\hebtav%
+ \or\hebshin\hebbet\hebtet%
+ \or\hebalef\hebdalet\hebresh\ \hebalef'%
+ \or\hebalef\hebdalet\hebresh\ \hebbet'%
+ \or\hebnun\hebyod\hebsamekh\hebfinalnun%
+ \or\hebalef\hebyod\hebyod\hebresh%
+ \or\hebsamekh\hebyod\hebvav\hebfinalnun%
+ \or\hebtav\hebmem\hebvav\hebzayin%
+ \or\hebalef\hebbet%
+ \or\hebalef\heblamed\hebvav\heblamed%
+ \fi%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewDayName}
+% Name of day in Hebrew letters (gimatria).
+% \begin{macrocode}
+\def\HebrewDayName#1{\Hebrewnumeral{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\FormatForHebrew}
+% The macro |\FormatForHebrew{|\emph{hday}|}{|\emph{hmonth}
+% |}{|\emph{hyear}|}| returns the formatted Hebrew date in Hebrew
+% language.
+% \begin{macrocode}
+\def\FormatForHebrew#1#2#3{%
+ \HebrewDayName{#1}~\hebbet\HebrewMonthName{#2}{#3},~%
+ \HebrewYearName{#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% We continue with two English language macros for Hebrew calendar.
+% \begin{macro}{\HebrewMonthNameInEnglish}
+% The macro |\HebrewMonthNameInEnglish{|\emph{month}|}{|%
+% \emph{year}|}| is similar to |\Hebrew|\-|Month|\-|Name| described
+% above. It returns the name of month in the Hebrew `year' in
+% English.
+% \begin{macrocode}
+\def\HebrewMonthNameInEnglish#1#2{%
+ \ifnum #1 = 7%
+ \CheckLeapHebrewYear{#2}%
+ \if@HebrewLeap Adar II\else Adar\fi%
+ \else%
+ \ifcase #1%
+ % nothing for 0
+ \or Tishrei%
+ \or Heshvan%
+ \or Kislev%
+ \or Tebeth%
+ \or Shebat%
+ \or Adar I%
+ \or Adar II%
+ \or Nisan%
+ \or Iyar%
+ \or Sivan%
+ \or Tammuz%
+ \or Av%
+ \or Elul%
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\FormatForEnglish}
+% The macro |\FormatForEnglish{|\emph{hday}|}{|\emph{hmonth}
+% |}{|\emph{hyear}|}| is similar to |\Format|\-|For|\-|Hebrew|
+% macro described above and returns the formatted Hebrew date in
+% English.
+% \begin{macrocode}
+\def\FormatForEnglish#1#2#3{%
+ \HebrewMonthNameInEnglish{#2}{#3} \number#1,\ \number#3}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Auxiliary Macros}
+%
+% \begin{macrocode}
+\newcount\@common
+% \end{macrocode}
+% \begin{macro}{\Remainder}
+% |\Remainder{|\emph{a}|}{|\emph{b}|}{|\emph{c}|}| calculates
+% $c = a\%b == a-b\times\frac{a}{b}$
+% \begin{macrocode}
+\def\Remainder#1#2#3{%
+ #3 = #1% % c = a
+ \divide #3 by #2% % c = a/b
+ \multiply #3 by -#2% % c = -b(a/b)
+ \advance #3 by #1}% % c = a - b(a/b)
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newif\if@Divisible
+% \end{macrocode}
+% \begin{macro}{\CheckIfDivisible}
+% |\CheckIfDivisible{|\emph{a}|}{|\emph{b}|}| sets
+% |\@Divisibletrue| if $a\%b == 0$
+% \begin{macrocode}
+\def\CheckIfDivisible#1#2{%
+ {%
+ \countdef\tmp = 0% \tmp == \count0 - temporary variable
+ \Remainder{#1}{#2}{\tmp}%
+ \ifnum \tmp = 0%
+ \global\@Divisibletrue%
+ \else%
+ \global\@Divisiblefalse%
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifundefined}
+% From the \TeX book, ex. 7.7:
+% \begin{quote}
+% |\ifundefined{|\emph{command}|}<true text>\else<false text>\fi|
+% \end{quote}
+% \begin{macrocode}
+\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Gregorian Part}
+%
+% \begin{macrocode}
+\newif\if@GregorianLeap
+% \end{macrocode}
+% \begin{macro}{\IfGregorianLeap}
+% Conditional which is true if Gregorian `year' is a leap year:
+% $((year\%4==0)\wedge(year\%100\neq 0))\vee(year\%400==0)$
+% \begin{macrocode}
+\def\IfGregorianLeap#1{%
+ \CheckIfDivisible{#1}{4}%
+ \if@Divisible%
+ \CheckIfDivisible{#1}{100}%
+ \if@Divisible%
+ \CheckIfDivisible{#1}{400}%
+ \if@Divisible%
+ \@GregorianLeaptrue%
+ \else%
+ \@GregorianLeapfalse%
+ \fi%
+ \else%
+ \@GregorianLeaptrue%
+ \fi%
+ \else%
+ \@GregorianLeapfalse%
+ \fi%
+ \if@GregorianLeap}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GregorianDaysInPriorMonths}
+% The macro |\GregorianDaysInPriorMonths{|\emph{month}|}{|^^A
+% \emph{year}|}{|\emph{days}|}| calculates the number of days in
+% months prior to `month' in the `year'.
+% \begin{macrocode}
+\def\GregorianDaysInPriorMonths#1#2#3{%
+ {%
+ #3 = \ifcase #1%
+ 0 \or% % no month number 0
+ 0 \or%
+ 31 \or%
+ 59 \or%
+ 90 \or%
+ 120 \or%
+ 151 \or%
+ 181 \or%
+ 212 \or%
+ 243 \or%
+ 273 \or%
+ 304 \or%
+ 334%
+ \fi%
+ \IfGregorianLeap{#2}%
+ \ifnum #1 > 2% % if month after February
+ \advance #3 by 1% % add leap day
+ \fi%
+ \fi%
+ \global\@common = #3}%
+ #3 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GregorianDaysInPriorYears}
+% The macro |\GregorianDaysInPriorYears{|\emph{year}|}{|^^A
+% \emph{days}|}| calculates the number of days in years prior to
+% the `year'.
+% \begin{macrocode}
+\def\GregorianDaysInPriorYears#1#2{%
+ {%
+ \countdef\tmpc = 4% % \tmpc==\count4
+ \countdef\tmpb = 2% % \tmpb==\count2
+ \tmpb = #1% %
+ \advance \tmpb by -1% %
+ \tmpc = \tmpb% % \tmpc = \tmpb = year-1
+ \multiply \tmpc by 365% % Days in prior years =
+ #2 = \tmpc% % = 365*(year-1) ...
+ \tmpc = \tmpb% %
+ \divide \tmpc by 4% % \tmpc = (year-1)/4
+ \advance #2 by \tmpc% % ... plus Julian leap days ...
+ \tmpc = \tmpb% %
+ \divide \tmpc by 100% % \tmpc = (year-1)/100
+ \advance #2 by -\tmpc% % ... minus century years ...
+ \tmpc = \tmpb% %
+ \divide \tmpc by 400% % \tmpc = (year-1)/400
+ \advance #2 by \tmpc% % ... plus 4-century years.
+ \global\@common = #2}%
+ #2 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AbsoluteFromGregorian}
+% The macro |\AbsoluteFromGregorian{|\emph{day}|}{|\emph{month}^^A
+% |}{|\emph{year}|}{|\emph{absdate}|}| calculates the absolute date
+% (days since $01.01.0001$) from Gregorian date |day.month.year|.
+% \begin{macrocode}
+\def\AbsoluteFromGregorian#1#2#3#4{%
+ {%
+ \countdef\tmpd = 0% % \tmpd==\count0
+ #4 = #1% % days so far this month
+ \GregorianDaysInPriorMonths{#2}{#3}{\tmpd}%
+ \advance #4 by \tmpd% % add days in prior months
+ \GregorianDaysInPriorYears{#3}{\tmpd}%
+ \advance #4 by \tmpd% % add days in prior years
+ \global\@common = #4}%
+ #4 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Hebrew Part}
+%
+% \begin{macrocode}
+\newif\if@HebrewLeap
+% \end{macrocode}
+% \begin{macro}{\CheckLeapHebrewYear}
+% Set |\@HebrewLeaptrue| if Hebrew `year' is a leap year, i.e.\ if
+% $(1+7\times year)\%19 < 7$ then \emph{true} else \emph{false}
+% \begin{macrocode}
+\def\CheckLeapHebrewYear#1{%
+ {%
+ \countdef\tmpa = 0% % \tmpa==\count0
+ \countdef\tmpb = 1% % \tmpb==\count1
+%
+ \tmpa = #1%
+ \multiply \tmpa by 7%
+ \advance \tmpa by 1%
+ \Remainder{\tmpa}{19}{\tmpb}%
+ \ifnum \tmpb < 7% % \tmpb = (7*year+1)%19
+ \global\@HebrewLeaptrue%
+ \else%
+ \global\@HebrewLeapfalse%
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewElapsedMonths}
+% The macro |\HebrewElapsedMonths{|\emph{year}|}{|\emph{months}|}|
+% determines the number of months elapsed from the Sunday prior to
+% the start of the Hebrew calendar to the mean conjunction of
+% Tishri of Hebrew `year'.
+% \begin{macrocode}
+\def\HebrewElapsedMonths#1#2{%
+ {%
+ \countdef\tmpa = 0% % \tmpa==\count0
+ \countdef\tmpb = 1% % \tmpb==\count1
+ \countdef\tmpc = 2% % \tmpc==\count2
+%
+ \tmpa = #1% %
+ \advance \tmpa by -1% %
+ #2 = \tmpa% % #2 = \tmpa = year-1
+ \divide #2 by 19% % Number of complete Meton cycles
+ \multiply #2 by 235% % #2 = 235*((year-1)/19)
+%
+ \Remainder{\tmpa}{19}{\tmpb}% \tmpa = years%19-years this cycle
+ \tmpc = \tmpb% %
+ \multiply \tmpb by 12% %
+ \advance #2 by \tmpb% % add regular months this cycle
+%
+ \multiply \tmpc by 7% %
+ \advance \tmpc by 1% %
+ \divide \tmpc by 19% % \tmpc = (1+7*((year-1)%19))/19 -
+% % number of leap months this cycle
+ \advance #2 by \tmpc% % add leap months
+%
+ \global\@common = #2}%
+ #2 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewElapsedDays}
+% The macro |\HebrewElapsedDays{|\emph{year}|}{|\emph{days}|}|
+% determines the number of days elapsed from the Sunday prior to
+% the start of the Hebrew calendar to the mean conjunction of
+% Tishri of Hebrew `year'.
+% \begin{macrocode}
+\def\HebrewElapsedDays#1#2{%
+ {%
+ \countdef\tmpa = 0% % \tmpa==\count0
+ \countdef\tmpb = 1% % \tmpb==\count1
+ \countdef\tmpc = 2% % \tmpc==\count2
+%
+ \HebrewElapsedMonths{#1}{#2}%
+ \tmpa = #2% %
+ \multiply \tmpa by 13753% %
+ \advance \tmpa by 5604% % \tmpa=MonthsElapsed*13758 + 5604
+ \Remainder{\tmpa}{25920}{\tmpc}% \tmpc == ConjunctionParts
+ \divide \tmpa by 25920%
+%
+ \multiply #2 by 29%
+ \advance #2 by 1%
+ \advance #2 by \tmpa% % #2 = 1 + MonthsElapsed*29 +
+% % PartsElapsed/25920
+ \Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
+ \ifnum \tmpc < 19440%
+ \ifnum \tmpc < 9924%
+ \else% % New moon at 9 h. 204 p. or later
+ \ifnum \tmpa = 2% % on Tuesday ...
+ \CheckLeapHebrewYear{#1}% of a common year
+ \if@HebrewLeap%
+ \else%
+ \advance #2 by 1%
+ \fi%
+ \fi%
+ \fi%
+ \ifnum \tmpc < 16789%
+ \else% % New moon at 15 h. 589 p. or later
+ \ifnum \tmpa = 1% % on Monday ...
+ \advance #1 by -1%
+ \CheckLeapHebrewYear{#1}% at the end of leap year
+ \if@HebrewLeap%
+ \advance #2 by 1%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \advance #2 by 1% % new moon at or after midday
+ \fi%
+%
+ \Remainder{#2}{7}{\tmpa}% % \tmpa == DayOfWeek
+ \ifnum \tmpa = 0% % if Sunday ...
+ \advance #2 by 1%
+ \else% %
+ \ifnum \tmpa = 3% % Wednesday ...
+ \advance #2 by 1%
+ \else%
+ \ifnum \tmpa = 5% % or Friday
+ \advance #2 by 1%
+ \fi%
+ \fi%
+ \fi%
+ \global\@common = #2}%
+ #2 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DaysInHebrewYear}
+% The macro |\DaysInHebrewYear{|\emph{year}|}{|\emph{days}|}|
+% calculates the number of days in Hebrew `year'.
+% \begin{macrocode}
+\def\DaysInHebrewYear#1#2{%
+ {%
+ \countdef\tmpe = 12% % \tmpe==\count12
+%
+ \HebrewElapsedDays{#1}{\tmpe}%
+ \advance #1 by 1%
+ \HebrewElapsedDays{#1}{#2}%
+ \advance #2 by -\tmpe%
+ \global\@common = #2}%
+ #2 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewDaysInPriorMonths}
+% The macro |\HebrewDaysInPriorMonths{|\emph{month}|}{|^^A
+% \emph{year}|}{|\emph{days}|}| calculates the nu\-mber of days in
+% months prior to `month' in the `year'.
+% \begin{macrocode}
+\def\HebrewDaysInPriorMonths#1#2#3{%
+ {%
+ \countdef\tmpf= 14% % \tmpf==\count14
+%
+ #3 = \ifcase #1% % Days in prior month of regular year
+ 0 \or% % no month number 0
+ 0 \or% % Tishri
+ 30 \or% % Heshvan
+ 59 \or% % Kislev
+ 89 \or% % Tebeth
+ 118 \or% % Shebat
+ 148 \or% % Adar I
+ 148 \or% % Adar II
+ 177 \or% % Nisan
+ 207 \or% % Iyar
+ 236 \or% % Sivan
+ 266 \or% % Tammuz
+ 295 \or% % Av
+ 325 \or% % Elul
+ 400% % Dummy
+ \fi%
+ \CheckLeapHebrewYear{#2}%
+ \if@HebrewLeap% % in leap year
+ \ifnum #1 > 6% % if month after Adar I
+ \advance #3 by 30% % add 30 days
+ \fi%
+ \fi%
+ \DaysInHebrewYear{#2}{\tmpf}%
+ \ifnum #1 > 3%
+ \ifnum \tmpf = 353% %
+ \advance #3 by -1% %
+ \fi% % Short Kislev
+ \ifnum \tmpf = 383% %
+ \advance #3 by -1% %
+ \fi% %
+ \fi%
+%
+ \ifnum #1 > 2%
+ \ifnum \tmpf = 355% %
+ \advance #3 by 1% %
+ \fi% % Long Heshvan
+ \ifnum \tmpf = 385% %
+ \advance #3 by 1% %
+ \fi% %
+ \fi%
+ \global\@common = #3}%
+ #3 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AbsoluteFromHebrew}
+% The macro |\AbsoluteFromHebrew{|\emph{day}|}{|\emph{month}^^A
+% |}{|\emph{year}|}{|\emph{absdate}|}| calculates the absolute date
+% of Hebrew date |day.month.year|.
+% \begin{macrocode}
+\def\AbsoluteFromHebrew#1#2#3#4{%
+ {%
+ #4 = #1%
+ \HebrewDaysInPriorMonths{#2}{#3}{#1}%
+ \advance #4 by #1% % Add days in prior months this year
+ \HebrewElapsedDays{#3}{#1}%
+ \advance #4 by #1% % Add days in prior years
+ \advance #4 by -1373429% % Subtract days before Gregorian
+ \global\@common = #4}% % 01.01.0001
+ #4 = \@common}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HebrewFromGregorian}
+% The macro |\HebrewFromGregorian{|\emph{Gday}|}{|\emph{Gmonth}^^A
+% |}{|\emph{Gyear}|}{|\emph{Hday}|}{|\emph{Hmonth}|}|\-|{|^^A
+% \emph{Hyear}|}| evaluates Hebrew date |Hday|, |Hmonth|, |Hyear|
+% from Gregorian date |Gday|, |Gmonth|, |Gyear|.
+% \begin{macrocode}
+\def\HebrewFromGregorian#1#2#3#4#5#6{%
+ {%
+ \countdef\tmpx= 17% % \tmpx==\count17
+ \countdef\tmpy= 18% % \tmpy==\count18
+ \countdef\tmpz= 19% % \tmpz==\count19
+%
+ #6 = #3% %
+ \global\advance #6 by 3761% approximation from above
+ \AbsoluteFromGregorian{#1}{#2}{#3}{#4}%
+ \tmpz = 1 \tmpy = 1%
+ \AbsoluteFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
+ \ifnum \tmpx > #4% %
+ \global\advance #6 by -1% Hyear = Gyear + 3760
+ \AbsoluteFromHebrew{\tmpz}{\tmpy}{#6}{\tmpx}%
+ \fi% %
+ \advance #4 by -\tmpx% % Days in this year
+ \advance #4 by 1% %
+ #5 = #4% %
+ \divide #5 by 30% % Approximation for month from below
+ \loop% % Search for month
+ \HebrewDaysInPriorMonths{#5}{#6}{\tmpx}%
+ \ifnum \tmpx < #4%
+ \advance #5 by 1%
+ \tmpy = \tmpx%
+ \repeat%
+ \global\advance #5 by -1%
+ \global\advance #4 by -\tmpy}}
+%</calendar>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/hebrew.fdd b/Master/texmf-dist/source/generic/babel/hebrew.fdd
new file mode 100644
index 00000000000..f61d06f430e
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/hebrew.fdd
@@ -0,0 +1,1297 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{610}
+%
+% \iffalse meta-comment
+%% File `hebrew.fdd' for installing the Hebrew encodings and fonts.
+%% Copyright (C) 1997 -- 2005 Boris Lavva.
+%
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% All rights reserved.
+% \fi
+% \iffalse
+%<LHEenc>\ProvidesFile{lheenc.def}
+%<LHEcmr>\ProvidesFile{lhecmr.fd}
+%<LHEcmss>\ProvidesFile{lhecmss.fd}
+%<LHEcmtt>\ProvidesFile{lhecmtt.fd}
+%<LHEclas>\ProvidesFile{lheclas.fd}
+%<LHEshold>\ProvidesFile{lheshold.fd}
+%<LHEshscr>\ProvidesFile{lheshscr.fd}
+%<LHEshstk>\ProvidesFile{lheshstk.fd}
+%<LHEfr>\ProvidesFile{lhefr.fd}
+%<LHEcrml>\ProvidesFile{lhecrml.fd}
+%<LHEredis>\ProvidesFile{lheredis.fd}
+%<HE8enc>\ProvidesFile{HE8enc.def}
+%<HE8cmr>\ProvidesFile{HE8cmr.fd}
+%<HE8cmss>\ProvidesFile{HE8cmss.fd}
+%<HE8cmtt>\ProvidesFile{HE8cmtt.fd}
+% The recoded Omega font (only Hebrew glyphs. Lacks other glyphs)
+%<HE8OmegaHebrew>\ProvidesFile{HE8OmegaHebrew.fd}
+% The culmus fonts:
+%<HE8aharoni>\ProvidesFile{HE8aharoni.fd}
+%<HE8david>\ProvidesFile{HE8david.fd}
+%<HE8drugulin>\ProvidesFile{HE8drugulin.fd}
+%<HE8ellinia>\ProvidesFile{HE8ellinia.fd}
+%<HE8frankruehl>\ProvidesFile{HE8frankruehl.fd}
+%<HE8yad>\ProvidesFile{HE8yad.fd}
+%<HE8miriam>\ProvidesFile{HE8miriam.fd}
+%<HE8nachlieli>\ProvidesFile{HE8nachlieli.fd}
+% The IBM Type1 fonts (not freely distributable
+%<HE8CourierShalom>\ProvidesFile{HE8CourierShalom.fd}
+%<HE8HelveticaNarkissTam>\ProvidesFile{HE8HelveticaNarkissTam.fd}
+%<HE8TimesNarkissim>\ProvidesFile{HE8TimesNarkissim.fd}
+% Placeholders for windows fonts:
+%<HE8mfdavid>\ProvidesFile{HE8mfdavid.fd}
+%<HE8mffrank>\ProvidesFile{HE8mffrank.fd}
+%<HE8mffrankthick>\ProvidesFile{HE8mffrankthick.fd}
+%<HE8mffrankthin>\ProvidesFile{HE8mffrankthin.fd}
+%<HE8mfmiriam>\ProvidesFile{HE8mfmiriam.fd}
+%<HE8mfmiriamwide>\ProvidesFile{HE8mfmiriamwide.fd}
+%<HE8mfnarkistam>\ProvidesFile{HE8mfnarkistam.fd}
+%<hebfont>\ProvidesPackage{hebfont}
+%<*driver>
+\ProvidesFile{hebrew.drv}
+%</driver>
+% \fi
+% \ProvidesFile{hebrew.fdd}
+ [2005/05/20 v1.2c %
+% \iffalse
+%<LHEenc> 7-bit Hebrew font encoding
+%<LHEcmr> Hebrew default font
+%<LHEcmss> Hebrew sans-serif font
+%<LHEcmtt> Hebrew typewriter font
+%<LHEclas> Hebrew classic font (by Joel M. Hoffman)
+%<LHEshold> Hebrew shalom old font (by Jonathan Brecher)
+%<LHEshscr> Hebrew shalom script font (by Jonathan Brecher)
+%<LHEshstk> Hebrew shalom stick font (by Jonathan Brecher)
+%<LHEfr> Hebrew frank-ruehl font
+%<LHEcrml> Hebrew carmel font (by Dr. Samy Zafrany)
+%<LHEredis> Hebrew redis font (by Prof. Jacques J. Goldberg)
+%<HE8enc> 8-bit Hebrew font encoding
+%<HE8cmr> Hebrew default font
+%<HE8cmss> Hebrew sans-serif font
+%<HE8cmtt> Hebrew typewriter font
+%<HE8OmegaHebrew> Hebrew font from the Omega project (by ???)
+%<HE8aharoni> Hebrew sans-serif font (Culmus)
+%<HE8david> Hebrew serif font (Culmus)
+%<HE8drugulin> Hebrew old serif font (Culmus)
+%<HE8ellinia> Hebrew sans-serif font (Culmus)
+%<HE8frankruehl> Hebrew serif font (Culmus)
+%<HE8yad> Hebrew handwriting font (Culmus)
+%<HE8miriam> Hebrew monospaced font (Culmus)
+%<HE8nachlieli> Hebrew sans-serif font (Culmus)
+%<HE8CourierShalom> Hebrew Shalom (Courier) font (by IBM)
+%<HE8HelveticaNarkissTam> Hebrew NarkisTam (Helvetica) (by Zvi Narkis)
+%<HE8TimesNarkissim> Hebrew Narkissim (Times) (by Zvi Narkis)
+%<HE8mfdavid> Hebrew David font (by ???)
+%<HE8mffrank> Hebrew Frank-Ruehl font (by ??)
+%<HE8mffrankthick> Hebrew Frank-Ruehl (thick) font (by ??)
+%<HE8mffrankthin> Hebrew Frank-Ruehl (thin) font (by ??)
+%<HE8mfmiriam> Hebrew Miriam font (by ???)
+%<HE8mfmiriamwide> Hebrew Miriam (wide) font (by ???)
+%<HE8mfnarkistam> Hebrew Narkis Tam font (by ???)
+%<hebfont> Hebrew font switching commands
+%<driver> Driver file for hebrew.fdd file
+% \fi
+% Hebrew font encodings support
+ (test version: still liable to change)]
+%
+% \font\manual=logo10
+% \providecommand\MF{{\manual META}\-{\manual FONT}}
+% \providecommand\PS{\textsc{PostScript}}
+% \providecommand\dst{\textsc{docstrip}}
+% \providecommand\LHE{\texttt{LHE}}
+% \providecommand\HEH{\texttt{HE8}}
+% \providecommand\file[1]{\texttt{#1}}
+% \providecommand\pkg[1]{\texttt{#1}}
+% \GetFileInfo{hebrew.fdd}
+%
+% \changes{hebfdd-1.0a}{1998/01/01}{%
+% Initial version. Supports only 7-bit LHE font encoding and all
+% available Hebrew \TeX\ fonts (by Boris Lavva)}
+% \changes{hebfdd-1.0b}{2001/08/16}{%
+% fixed lhecmr.fd to use oldjaf10 for a slanted font
+% available Hebrew \TeX\ fonts (by Tzafrir Cohen)}
+% \changes{hebfdd-1.1a}{2001/08/16}{%
+% Adding 8-bit HE8 fonts. Note that most of them cannot be distributed
+% with heb\LaTeX\ (by Tzafrir Cohen)}
+% \changes{hebfdd-1.2a}{2003/08/19}{%
+% Adding configurations for the Culmus fonts, currently 0.90
+% (by Tzafrir Cohen)}
+% \changes{hebfdd-1.2b}{2004/02/20}{Reinstated the test whether LHE or
+% HE8 is to be used}
+%
+% \changes{hebrew-1.2c}{2005/05/18}{Typo's in the docstrip guards made
+% HE8nachlieli.fd unusable}
+% \section{Hebrew font encodings}\label{sec:hebfdd}
+%
+% % Don't forget to update the docs...
+% \subsection{THIS SECTION IS OUT OF DATE. UPDATE DOCS TO MATCH HE8
+% ENCODING}
+%
+% The file \file{\filename}\footnote{The files described in this
+% section have version number \fileversion{} and were last revised
+% on \filedate.} contains the Local Hebrew Encoding (\LHE)
+% definition, the external font information needed to use the
+% Hebrew 7-bit fonts (old code fonts) and \pkg{hebfont} package
+% that provides Hebrew font switching commands.
+%
+% Using this file as an input, |lheenc.def| encoding definition
+% file, all |.fd| files (font definition files) and font switching
+% package for available Hebrew fonts are generated. We chose to use
+% 7-bit encoding as default font encoding, because:
+% \begin{enumerate}
+% \item There are many 7-bit encoded Hebrew fonts available, more
+% then for any other encoding.
+% \item Available \TeX{} Hebrew fonts do not include latin
+% alphabet, and we can safely map Hebrew glyphs to the
+% \texttt{ASCII} positions (0 -- 127).
+% \end{enumerate}
+%
+% Current definition of the \LHE{} encoding supports only Hebrew
+% letters (|\hebalef|--|\hebtav|), but not Hebrew points, such as
+% |\hebdagesh|, |\hebqamats|, |\hebpatah|, |\hebshindot|, etc. We
+% are working now on such addition.
+%
+% \StopEventually{}
+%
+% \iffalse
+% \subsection{A driver for this document}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you are
+% currently reading. It will be extracted from this file by the \dst{}
+% program.
+%
+% \begin{macrocode}
+%<*driver>
+\documentclass{ltxdoc}
+\title{Hebrew font encodings for use with \LaTeXe}
+\author{Boris Lavva}
+\date{Printed \today}
+\begin{document}
+ \maketitle
+ \DocInput{hebrew.fdd}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \subsection{The {\normalfont\dst{}} modules}
+%
+% The following modules are used in the implementation to direct
+% \dst{} in generating external files:
+% \begin{center}
+% \begin{tabular}{@{}ll}
+% driver & produce a documentation driver file \\[4pt]
+% HE8enc & produce the encoding definition for CodePage 1255
+% (\HEH)\\[4pt]
+% HE8cmr & make Hebrew default font in \HEH\\
+% HE8cmss & make Hebrew sans-serif font in \HEH\\
+% HE8cmtt & make Hebrew typewriter font in \HEH\\
+% HE8OmegaHebrew & Hebrew font from the Omega project (by ???)\\
+% HE8aharoni & Hebrew sans-serif font (Culmus)\\
+% HE8david & Hebrew serif font (Culmus)\\
+% HE8drugulin & Hebrew old serif font (Culmus)\\
+% HE8ellinia & Hebrew isans-serif font (Culmus)\\
+% HE8frankruehl & Hebrew serif font (Culmus)\\
+% HE8KtavYad & Hebrew handwriting font (Culmus)\\
+% HE8MiriamMono & Hebrew monospaced font\\
+% HE8Nachlieli & Hebrew sans-serif font (Culmus)\\
+% HE8CourierShalom & Hebrew Shalom (Courier) font (by IBM)\\
+% HE8HelveticaNarkissTam &Hebrew NarkisTam (Helvetica) (by Zvi Narkis)\\
+% HE8TimesNarkissim & Hebrew Narkissim (Times) (by Zvi Narkis) \\
+% HE8mfdavid & Hebrew David font (by ???)\\
+% HE8mffrank & Hebrew Frank-Ruehl font (by ??)\\
+% HE8mffrankthick & Hebrew Frank-Ruehl (thick) font (by ??)\\
+% HE8mffrankthin & Hebrew Frank-Ruehl (thin) font (by ??)\\
+% HE8mfmiriam & Hebrew Miriam font (by ???)\\
+% HE8mfmiriamwide & Hebrew Miriam (wide) font (by ???)\\
+% HE8mfnarkistam & Hebrew Narkis Tam font (by ???)\\
+% LHEenc & produce the encoding definition for Local Hebrew
+% Encoding (\LHE)\\[4pt]
+% LHEcmr & make Hebrew default font in \LHE\\
+% LHEcmss & make Hebrew sans-serif font in \LHE\\
+% LHEcmtt & make Hebrew typewriter font in \LHE\\
+% LHEclas & make Hebrew classic font (by Joel M.~Hoffman) in \LHE\\
+% LHEshold & make Hebrew shalom old font (by Jonathan Brecher)
+% in \LHE\\
+% LHEshscr & make Hebrew shalom script font (by Jonathan Brecher)
+% in \LHE\\
+% LHEshstk & make Hebrew shalom stick font (by Jonathan Brecher)
+% in \LHE\\
+% LHEfr & make Hebrew frank-ruehl font in \LHE\\
+% LHEcrml & make Hebrew carmel font (by Dr. Samy Zafrany) in \LHE\\
+% LHEredis & make Hebrew redis font (by Prof. Jacques J.~Goldberg)
+% in \LHE\\[4pt]
+% nowarn & option for font definition files, that used\\
+% & to produce ``silent'' font substitutions without
+% giving warnings\\[4pt]
+% hebfont & create Hebrew font switching commands package
+% \end{tabular}
+% \end{center}
+% A typical \dst{} command file would then have entries like:
+%\begin{verbatim}
+%\generateFile{lhecmr.fd}{t}{\from{hebrew.fdd}{LHEcmr,nowarn}}
+%\end{verbatim}
+%
+% \subsection{The \LHE encoding definition file}
+%
+% The Hebrew font encoding \LHE{} is based upon the old-code encoding
+% also known as the Israeli Standard SI-960. Many Hebrew \TeX{}
+% fonts from the Hebrew University of Jerusalem are encoded
+% in this encoding. It only uses the lower 128 positions of the font
+% table. As local encoding its name start with the letter `L'.
+%
+% First we define the Local Hebrew Encoding; specify a default
+% for the font substitution process for the \LHE{} encoding and
+% supply a font to be used when all else fails.
+%
+% \begin{macrocode}
+%<*LHEenc>
+\DeclareFontEncoding{LHE}{}{}
+\DeclareFontSubstitution{LHE}{cmr}{m}{n}
+\DeclareErrorFont{LHE}{cmr}{m}{n}{10}
+%</LHEenc>
+% \end{macrocode}
+% Then we define a few commands in the \LHE{} encoding.
+% \begin{macrocode}
+%<*LHEenc>
+\ProvideTextCommand{\textcopyright}{LHE}{\textcircled{\@latin{c}}}
+\ProvideTextCommand{\textregistered}{LHE}{\textcircled{\scshape%
+ \@latin{r}}}
+\ProvideTextCommand{\texttrademark}{LHE}{\textsuperscript{\@latin{TM}}}
+%</LHEenc>
+% \end{macrocode}
+%
+% Because not everyone can input Hebrew input text directly from
+% the keyboard we need to define control sequences for all the
+% Hebrew glyphs in the fonts. In addition, we want to support
+% many input encodings for Hebrew and to keep the language
+% definition file (|hebrew.ldf|) independent of the
+% encoding. Therefore, we exploit the standard \LaTeXe{} font
+% encoding mechanism to define control sequences for all the Hebrew
+% glyphs in the fonts in encoding-specific way. The language
+% definition file uses only the control sequences and doesn't need
+% to check the current font or input encoding.
+%
+% In the \LHE{} encoding (7-bit encoding) all the Hebrew glyphes
+% reside in the \emph{lower} half of the font. Currently, only the
+% Hebrew letters are supported. They use the same positions as the
+% latin small letters in |ASCII| encoding and the position of |`|.
+%
+% The symbol |`| (glyph 96) is used by Hebrew letter \emph{Alef},
+% so we need to define its |lccode| to allow hyphenation. All other
+% letters retain the same |lccode|s as their latin counterparts.
+% \begin{macrocode}
+%<+LHEenc>\lccode``=``
+% \end{macrocode}
+% Hebrew letters occupy the positions 96--122 in \LHE{} encoding:
+% \begin{macrocode}
+%<*LHEenc>
+\DeclareTextSymbol{\hebalef}{LHE}{96}
+\DeclareTextSymbol{\hebbet}{LHE}{97}
+\DeclareTextSymbol{\hebgimel}{LHE}{98}
+\DeclareTextSymbol{\hebdalet}{LHE}{99}
+\DeclareTextSymbol{\hebhe}{LHE}{100}
+\DeclareTextSymbol{\hebvav}{LHE}{101}
+\DeclareTextSymbol{\hebzayin}{LHE}{102}
+\DeclareTextSymbol{\hebhet}{LHE}{103}
+\DeclareTextSymbol{\hebtet}{LHE}{104}
+\DeclareTextSymbol{\hebyod}{LHE}{105}
+\DeclareTextSymbol{\hebfinalkaf}{LHE}{106}
+\DeclareTextSymbol{\hebkaf}{LHE}{107}
+\DeclareTextSymbol{\heblamed}{LHE}{108}
+\DeclareTextSymbol{\hebfinalmem}{LHE}{109}
+\DeclareTextSymbol{\hebmem}{LHE}{110}
+\DeclareTextSymbol{\hebfinalnun}{LHE}{111}
+\DeclareTextSymbol{\hebnun}{LHE}{112}
+\DeclareTextSymbol{\hebsamekh}{LHE}{113}
+\DeclareTextSymbol{\hebayin}{LHE}{114}
+\DeclareTextSymbol{\hebfinalpe}{LHE}{115}
+\DeclareTextSymbol{\hebpe}{LHE}{116}
+\DeclareTextSymbol{\hebfinaltsadi}{LHE}{117}
+\DeclareTextSymbol{\hebtsadi}{LHE}{118}
+\DeclareTextSymbol{\hebqof}{LHE}{119}
+\DeclareTextSymbol{\hebresh}{LHE}{120}
+\DeclareTextSymbol{\hebshin}{LHE}{121}
+\DeclareTextSymbol{\hebtav}{LHE}{122}
+%</LHEenc>
+% \end{macrocode}
+% Letter |\hebsin| is defined as a synonym of |\hebshin|:
+% \begin{macrocode}
+%<+LHEenc>\let\hebsin=\hebshin
+% \end{macrocode}
+%
+% \subsection{The font definition files (in \LHE{} encoding)}
+%
+% \subsubsection{Hebrew default font}
+%
+% It uses \emph{Jerusalem} font for regular font, \emph{Old
+% Jaffa} font for italic shape and small-caps, \emph{Dead Sea}
+% font for bold face, and \emph{Tel-Aviv} for bold-italic
+% \begin{macrocode}
+%<*LHEcmr>
+\DeclareFontFamily{LHE}{cmr}{\hyphenchar\font45}
+\DeclareFontShape{LHE}{cmr}{m}{n}
+ {<-> jerus10 }{}
+%%%%%%% Italicized shape
+\DeclareFontShape{LHE}{cmr}{m}{it}
+ {<-> oldjaf10 }{}
+\DeclareFontShape{LHE}{cmr}{m}{sl}
+ {<-> oldjaf10 }{}
+\DeclareFontShape{LHE}{cmr}{m}{sc}
+ {<-> oldjaf10 }{}
+%%%%%%% Bold extended series
+\DeclareFontShape{LHE}{cmr}{bx}{n}
+ {<-> deads10 }{}
+\DeclareFontShape{LHE}{cmr}{b}{n}
+ {<-> deads10 }{}
+%%%%%%% Bold extended (Italic) series
+\DeclareFontShape{LHE}{cmr}{bx}{sl}
+ {<-> telav10 }{}
+\DeclareFontShape{LHE}{cmr}{bx}{it}
+ {<-> telav10 }{}
+%</LHEcmr>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew sans-serif font}
+%
+% We use \emph{Tel Aviv} font for the Sans family. \emph{Old
+% Jaffa} font is used for italic shape and \emph{Dead Sea}
+% used for bold face.
+% \begin{macrocode}
+%<*LHEcmss>
+\DeclareFontFamily{LHE}{cmss}{\hyphenchar\font45}
+\DeclareFontShape{LHE}{cmss}{m}{n}
+ {<-> telav10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmss}{m}{sc}
+%<-nowarn> {<->sub * cmss/m/n}{}
+%<+nowarn> {<->ssub * cmss/m/n}{}
+%%%%%%% Italicized shape
+\DeclareFontShape{LHE}{cmss}{m}{it}
+ {<-> oldjaf10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmss}{m}{sl}
+%<-nowarn> {<->sub * cmss/m/it}{}
+%<+nowarn> {<->ssub * cmss/m/it}{}
+%%%%%%% Bold extended series
+\DeclareFontShape{LHE}{cmss}{bx}{n}
+ {<-> deads10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmss}{b}{n}
+%<-nowarn> {<->sub * cmss/bx/n}{}
+%<+nowarn> {<->ssub * cmss/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmss}{bx}{sl}
+%<-nowarn> {<->sub * cmss/bx/n}{}
+%<+nowarn> {<->ssub * cmss/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmss}{bx}{it}
+%<-nowarn> {<->sub * cmss/bx/n}{}
+%<+nowarn> {<->ssub * cmss/bx/n}{}
+%</LHEcmss>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew typewriter font}
+%
+% We use \emph{Tel Aviv} font as the typewriter font. \emph{Old
+% Jaffa} font is used for italic shape and \emph{Dead Sea}
+% used for bold face.
+% \begin{macrocode}
+%<*LHEcmtt>
+\DeclareFontFamily{LHE}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{LHE}{cmtt}{m}{n}
+ {<-> telav10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmtt}{m}{sc}
+%<-nowarn> {<->sub * cmtt/m/n}{}
+%<+nowarn> {<->ssub * cmtt/m/n}{}
+%%%%%%% Italicized shape
+\DeclareFontShape{LHE}{cmtt}{m}{it}
+ {<-> oldjaf10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmtt}{m}{sl}
+%<-nowarn> {<->sub * cmtt/m/it}{}
+%<+nowarn> {<->ssub * cmtt/m/it}{}
+%%%%%%% Bold extended series
+\DeclareFontShape{LHE}{cmtt}{bx}{n}
+ {<-> deads10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{cmtt}{bx}{it}
+%<-nowarn> {<->sub * cmtt/bx/n}{}
+%<+nowarn> {<->ssub * cmtt/bx/n}{}
+%</LHEcmtt>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew classic font}
+%
+% \emph{Hclassic} and \emph{hcaption} fonts are distributed freely
+% from |CTAN| sites and copyrighted by Joel M.~Hoffman, of 19
+% Hillcrest Lane, Rye, NY 10580 USA, e-mail:
+% |72700.402@compuserve.com|.
+%
+% Hclassic is a modernized Classical Hebrew font (in the same way
+% that Knuth's |cmr| family is a modernized Roman font --- but his
+% fonts are much nicer). Hcaption is a slanted version of hclassic
+% font. Both fonts contain all of the Hebrew consonants,
+% the (rarely used) ligature \emph{alef-lamed} and two versions of
+% the letter \emph{ayin} for use with and without
+% vowels. Hclassic also contains all of the vowels found in Hebrew,
+% a symbol for \emph{meteg}, and dots for use as a \emph{dagesh}
+% and for differentiating \emph{shin} and \emph{sin} letters.
+%
+% Currently, only the Hebrew consonants (\emph{hebalef} -- \emph{hebtav})
+% from these fonts are supported by \LaTeXe{}, however one can use
+% vowels and dots directly with \PlainTeX{} macros. We are working
+% on generic vowels and dots support for \LaTeXe.
+%
+% \begin{macrocode}
+%<*LHEclas>
+\DeclareFontFamily{LHE}{clas}{}
+\DeclareFontShape{LHE}{clas}{m}{n}
+ {<-> s * [0.83345] hclassic }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{clas}{m}{sc}
+%<-nowarn> {<->sub * clas/m/n}{}
+%<+nowarn> {<->ssub * clas/m/n}{}
+%%%%%%% Slanted shape
+\DeclareFontShape{LHE}{clas}{m}{sl}
+ {<-> s * [0.69389] hcaption }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{clas}{m}{it}
+%<-nowarn> {<->sub * clas/m/sl}{}
+%<+nowarn> {<->ssub * clas/m/sl}{}
+%</LHEclas>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew shalom fonts}
+%
+% All three shalom fonts (\emph{ShalomScript10},
+% \emph{ShalomStick10} and \emph{ShalomOldStyle10}) have been
+% created by Jonathan Brecher, of 9 Skyview Road, Lexington, MA
+% 02173-1112 USA, e-mail: |brecher@husc.harvard.edu|.
+%
+% All shalom fonts have been written in \PS{} via Fontographer on a
+% Mac. The fonts have been converted to \MF{} by Rama Porrat
+% (e-mail: |rama@cc.huji.ac.il|), using
+% the utility typo, a font editor + converter between font formats
+% (a commercial product). |ShalomScript10.mf| is the \MF{}
+% equivalent of |ShalomScript.ps|, |ShalomStick10.mf| came from
+% |ShalomStick.ps| and |ShalomOldStyle10.mf| originated in
+% |ShalomOldStyle.ps|.
+%
+% The fonts differ in the letters' style. ShalomScript10 contains
+% hand writing Hebrew letters; ShalomStick10 contains sans-serif
+% letters, and ShalomOldStyle10 contains old style letters. All
+% three fonts contain vowels and dots (nikud). While converting to
+% \MF{}, letters and symbols within the fonts have been arranged
+% so as to get a usable font for writing Hebrew documents in \TeX{}
+% or \LaTeX{}, with as well as without vowels.
+%
+% Currently, only the Hebrew consonants (\emph{hebalef} -- \emph{hebtav})
+% from these fonts are supported by \LaTeXe{}, however one can use
+% vowels and dots directly with \PlainTeX{} macros. We are working
+% on generic vowels and dots support for \LaTeXe.
+%
+% \begin{macrocode}
+%<*LHEshold>
+\DeclareFontFamily{LHE}{shold}{}
+\DeclareFontShape{LHE}{shold}{m}{n}
+ {<-> shold10 }{}
+%</LHEshold>
+%<*LHEshscr>
+\DeclareFontFamily{LHE}{shscr}{}
+\DeclareFontShape{LHE}{shscr}{m}{n}
+ {<-> shscr10 }{}
+%</LHEshscr>
+%<*LHEshstk>
+\DeclareFontFamily{LHE}{shstk}{}
+\DeclareFontShape{LHE}{shstk}{m}{n}
+ {<-> shstk10 }{}
+%</LHEshstk>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew frank-ruehl font}
+%
+% \emph{Frank Ruehl} font was written in \MF{} and includes three
+% shapes: regular, bold extaneded and slanted.
+%
+% \begin{macrocode}
+%<*LHEfr>
+\DeclareFontFamily{LHE}{fr}{}
+\DeclareFontShape{LHE}{fr}{m}{n}
+ {<-> fr }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{fr}{m}{sc}
+%<-nowarn> {<->sub * fr/m/n}{}
+%<+nowarn> {<->ssub * fr/m/n}{}
+%%%%%%% Slanted shape
+\DeclareFontShape{LHE}{fr}{m}{sl}
+ {<-> frsl }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{fr}{m}{it}
+%<-nowarn> {<->sub * fr/m/sl}{}
+%<+nowarn> {<->ssub * fr/m/sl}{}
+%%%%%%% Bold extended series
+\DeclareFontShape{LHE}{fr}{bx}{n}
+ {<-> frbx }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{fr}{b}{n}
+%<-nowarn> {<->sub * fr/bx/n}{}
+%<+nowarn> {<->ssub * fr/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{fr}{bx}{sl}
+%<-nowarn> {<->sub * fr/bx/n}{}
+%<+nowarn> {<->ssub * fr/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{fr}{bx}{it}
+%<-nowarn> {<->sub * fr/bx/n}{}
+%<+nowarn> {<->ssub * fr/bx/n}{}
+%</LHEfr>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew carmel font}
+%
+% \emph{Carmel} font includes regular and slanted shapes. It was
+% created by Dr.~Samy Zafrany of the Technion, Haifa, Israel with
+% the intention of making nice fonts for headers and emphasized
+% text.
+%
+% \begin{macrocode}
+%<*LHEcrml>
+\DeclareFontFamily{LHE}{crml}{}
+\DeclareFontShape{LHE}{crml}{m}{n}
+ {<-> crml10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{crml}{m}{sc}
+%<-nowarn> {<->sub * crml/m/n}{}
+%<+nowarn> {<->ssub * crml/m/n}{}
+%%%%%%% Slanted shape
+\DeclareFontShape{LHE}{crml}{m}{sl}
+ {<-> crmlsl10 }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{crml}{m}{it}
+%<-nowarn> {<->sub * crml/m/sl}{}
+%<+nowarn> {<->ssub * crml/m/sl}{}
+%</LHEcrml>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew redis font}
+%
+% \emph{Redis} font has been created by Prof.~Jacques J.~Goldberg
+% of the Technion. Haifa, Israel. The font is available in regular,
+% slanted and bold extanded shapes. This font contains a full set
+% of Hebrew letters in a ``sans-serif vectorized'' style, and
+% selected punctuation.
+%
+% \begin{macrocode}
+%<*LHEredis>
+\DeclareFontFamily{LHE}{redis}{}
+\DeclareFontShape{LHE}{redis}{m}{n}{%
+ <5> <6> redis7
+ <7> <8> <9> <10> <12> gen * redis
+ <10.95> redis10
+ <14.4> redis12
+ <17.28> <20.74> <24.88> redis17}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{redis}{m}{sc}
+%<-nowarn> {<->sub * redis/m/n}{}
+%<+nowarn> {<->ssub * redis/m/n}{}
+%%%%%%% Slanted shape
+\DeclareFontShape{LHE}{redis}{m}{sl}{%
+ <5> <6> <7> rediss8
+ <8> <9> <10> <12> gen * rediss
+ <10.95> rediss10
+ <14.4> <17.28> <20.74> <24.88> rediss12}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{redis}{m}{it}
+%<-nowarn> {<->sub * redis/m/sl}{}
+%<+nowarn> {<->ssub * redis/m/sl}{}
+%%%%%%% Bold extended series
+\DeclareFontShape{LHE}{redis}{bx}{n}{%
+ <5> <6> <7> <8> <9> <10> <10.95> <12>
+ <14.4> <17.28> <20.74> <24.88> redisb10}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{redis}{b}{n}
+%<-nowarn> {<->sub * redis/bx/n}{}
+%<+nowarn> {<->ssub * redis/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{redis}{bx}{sl}
+%<-nowarn> {<->sub * redis/bx/n}{}
+%<+nowarn> {<->ssub * redis/bx/n}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{LHE}{redis}{bx}{it}
+%<-nowarn> {<->sub * redis/bx/n}{}
+%<+nowarn> {<->ssub * redis/bx/n}{}
+%</LHEredis>
+% \end{macrocode}
+%
+% \subsection{The \HEH encoding definition file}
+%
+% The Hebrew font encoding \HEH{} is based upon an extention by
+% Microsoft to the ISO-8859-8 standard. This is an 8bit encoding. The
+% extentions include hebrew points (``Nikud'').
+%
+% First we define the Codepage 1255; specify a default
+% for the font substitution process for the \HEH{} encoding and
+% supply a font to be used when all else fails.
+%
+% \begin{macrocode}
+%<*HE8enc>
+\DeclareFontEncoding{HE8}{}{}
+\DeclareFontSubstitution{HE8}{cmr}{m}{n}
+\DeclareErrorFont{HE8}{cmr}{m}{n}{10}
+%</HE8enc>
+% \end{macrocode}
+% Then we define a few commands in the \HEH{} encoding.
+% \begin{macrocode}
+%<*HE8enc>
+\ProvideTextCommand{\textcopyright}{HE8}{\textcircled{\@latin{c}}}
+\ProvideTextCommand{\textregistered}{HE8}{\textcircled{\scshape%
+ \@latin{r}}}
+\ProvideTextCommand{\texttrademark}{HE8}{\textsuperscript{\@latin{TM}}}
+%</HE8enc>
+% \end{macrocode}
+%
+% \subsubsection{CHECK HERE FOR HE8 UPDATES}
+%
+% Because not everyone can input Hebrew input text directly from
+% the keyboard we need to define control sequences for all the
+% Hebrew glyphs in the fonts. In addition, we want to support
+% many input encodings for Hebrew and to keep the language
+% definition file (|hebrew.ldf|) independent of the
+% encoding. Therefore, we exploit the standard \LaTeXe{} font
+% encoding mechanism to define control sequences for all the Hebrew
+% glyphs in the fonts in encoding-specific way. The language
+% definition file uses only the control sequences and doesn't need
+% to check the current font or input encoding.
+%
+% % In the \LHE{} encoding (7-bit encoding) all the Hebrew glyphes
+% % reside in the \emph{lower} half of the font. Currently, only the
+% % Hebrew letters are supported. They use the same positions as the
+% % latin small letters in |ASCII| encoding and the position of |`|.
+%
+% Some general symbols:
+% \begin{macrocode}
+%<*HE8enc>
+\ProvideTextCommand{\textcopyright}{HE8}{\textcircled{\@latin{c}}}
+\ProvideTextCommand{\textregistered}{HE8}{\textcircled{\scshape%
+ \@latin{r}}}
+\ProvideTextCommand{\texttrademark}{HE8}{\textsuperscript{\@latin{TM}}}
+%</HE8enc>
+% \end{macrocode}
+%
+% The hebrew points:
+% \begin{macrocode}
+%<*HE8enc>
+\DeclareTextSymbol{\sheva}{HE8}{192}
+\DeclareTextSymbol{\hatafsegol}{HE8}{193}
+\DeclareTextSymbol{\hatafpatah}{HE8}{194}
+\DeclareTextSymbol{\hatafqamats}{HE8}{195}
+\DeclareTextSymbol{\hiriq}{HE8}{196}
+\DeclareTextSymbol{\tsere}{HE8}{197}
+\DeclareTextSymbol{\segol}{HE8}{198}
+\DeclareTextSymbol{\patah}{HE8}{199}
+\DeclareTextSymbol{\qamats}{HE8}{200}
+\DeclareTextSymbol{\holam}{HE8}{201}
+\DeclareTextSymbol{\qubuts}{HE8}{203}
+\DeclareTextSymbol{\dagesh}{HE8}{204}
+\DeclareTextSymbol{\meteg}{HE8}{205}
+\DeclareTextSymbol{\maqaf}{HE8}{206}
+\DeclareTextSymbol{\rafe}{HE8}{207}
+\DeclareTextSymbol{\paseq}{HE8}{208}
+\DeclareTextSymbol{\shindot}{HE8}{209}
+\DeclareTextSymbol{\sindot}{HE8}{210}
+\DeclareTextSymbol{\sofpasuq}{HE8}{211}
+\DeclareTextSymbol{\doublevav}{HE8}{212}
+\DeclareTextSymbol{\vavyod}{HE8}{213}
+\DeclareTextSymbol{\doubleyod}{HE8}{214}
+%</HE8enc>
+% \end{macrocode}
+%
+% Hebrew letters occupy the positions 224--250 in \HEH{} encoding [WHAT
+% ABOUT OTHER MARKS]:
+% \begin{macrocode}
+%<*HE8enc>
+% \lccode``=`` % probably not needed (Tzafrir)
+\DeclareTextSymbol{\hebalef}{HE8}{224}
+\DeclareTextSymbol{\hebbet}{HE8}{225}
+\DeclareTextSymbol{\hebgimel}{HE8}{226}
+\DeclareTextSymbol{\hebdalet}{HE8}{227}
+\DeclareTextSymbol{\hebhe}{HE8}{228}
+\DeclareTextSymbol{\hebvav}{HE8}{229}
+\DeclareTextSymbol{\hebzayin}{HE8}{230}
+\DeclareTextSymbol{\hebhet}{HE8}{231}
+\DeclareTextSymbol{\hebtet}{HE8}{232}
+\DeclareTextSymbol{\hebyod}{HE8}{233}
+\DeclareTextSymbol{\hebfinalkaf}{HE8}{234}
+\DeclareTextSymbol{\hebkaf}{HE8}{235}
+\DeclareTextSymbol{\heblamed}{HE8}{236}
+\DeclareTextSymbol{\hebfinalmem}{HE8}{237}
+\DeclareTextSymbol{\hebmem}{HE8}{238}
+\DeclareTextSymbol{\hebfinalnun}{HE8}{239}
+\DeclareTextSymbol{\hebnun}{HE8}{240}
+\DeclareTextSymbol{\hebsamekh}{HE8}{241}
+\DeclareTextSymbol{\hebayin}{HE8}{242}
+\DeclareTextSymbol{\hebfinalpe}{HE8}{243}
+\DeclareTextSymbol{\hebpe}{HE8}{244}
+\DeclareTextSymbol{\hebfinaltsadi}{HE8}{245}
+\DeclareTextSymbol{\hebtsadi}{HE8}{246}
+\DeclareTextSymbol{\hebqof}{HE8}{247}
+\DeclareTextSymbol{\hebresh}{HE8}{248}
+\DeclareTextSymbol{\hebshin}{HE8}{249}
+\DeclareTextSymbol{\hebtav}{HE8}{250}
+%</HE8enc>
+% \end{macrocode}
+% Letter |\hebsin| is defined as a synonym of |\hebshin|:
+% \begin{macrocode}
+%<+HE8enc>\let\hebsin=\hebshin
+% \end{macrocode}
+%
+% \subsection{The font definition files (in \HEH{} encoding)}
+%
+% \subsubsection{Hebrew default font}
+%
+% It uses \emph{OmegaHebrew} font for regular font, \emph{Old
+% Jaffa} font for italic shape and small-caps, \emph{Dead Sea}
+% font for bold face, and \emph{Tel-Aviv} for bold-italic
+% \begin{macrocode}
+%<*HE8cmr>
+\DeclareFontFamily{HE8}{cmr}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{cmr}{m}{n}
+ {<-> david }{}
+%%%%%%% Italicized shape
+\DeclareFontShape{HE8}{cmr}{m}{it}
+ {<-> davidi }{}
+\DeclareFontShape{HE8}{cmr}{m}{sl}
+ {<-> davidi }{}
+\DeclareFontShape{HE8}{cmr}{m}{sc}
+ {<-> david }{}
+%%%%%%% Bold extended series
+\DeclareFontShape{HE8}{cmr}{bx}{n}
+ {<-> davidb }{}
+\DeclareFontShape{HE8}{cmr}{b}{n}
+ {<-> davidb }{}
+%%%%%%% Bold extended (Italic) series
+\DeclareFontShape{HE8}{cmr}{bx}{sl}
+ {<-> davidbi }{}
+\DeclareFontShape{HE8}{cmr}{bx}{it}
+ {<-> davidbi }{}
+%</HE8cmr>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew sans-serif font}
+%
+% Until we have a real sans-serif font in this distribution, this file
+% will remain a copy of the roman fonts definitons above.
+% \begin{macrocode}
+%<*HE8cmss>
+\DeclareFontFamily{HE8}{cmss}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{cmss}{m}{n}
+ {<-> nachlieli }{}
+%%%%%%% Italicized shape
+\DeclareFontShape{HE8}{cmss}{m}{it}
+ {<-> nachlieli }{}
+\DeclareFontShape{HE8}{cmss}{m}{sl}
+ {<-> nachlieli }{}
+\DeclareFontShape{HE8}{cmss}{m}{sc}
+ {<-> nachlieli }{}
+%%%%%%% Bold extended series
+\DeclareFontShape{HE8}{cmss}{bx}{n}
+ {<-> nachlieli }{}
+\DeclareFontShape{HE8}{cmss}{b}{n}
+ {<-> nachlieli }{}
+%%%%%%% Bold extended (Italic) series
+\DeclareFontShape{HE8}{cmss}{bx}{sl}
+ {<-> nachlieli }{}
+\DeclareFontShape{HE8}{cmss}{bx}{it}
+ {<-> nachlieli }{}
+%</HE8cmss>
+% \end{macrocode}
+%
+% \subsubsection{Hebrew typewriter font}
+%
+% Until we have a real sans-serif font in this distribution, this file
+% will remain a copy of the roman fonts definitons above.
+% \begin{macrocode}
+%<*HE8cmtt>
+\DeclareFontFamily{HE8}{cmtt}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{cmtt}{m}{n}
+ {<-> miriam }{}
+%%%%%%% Italicized shape
+\DeclareFontShape{HE8}{cmtt}{m}{it}
+ {<-> miriam }{}
+\DeclareFontShape{HE8}{cmtt}{m}{sl}
+ {<-> miriam }{}
+\DeclareFontShape{HE8}{cmtt}{m}{sc}
+ {<-> miriam }{}
+%%%%%%% Bold extended series
+\DeclareFontShape{HE8}{cmtt}{bx}{n}
+ {<-> miriam }{}
+\DeclareFontShape{HE8}{cmtt}{b}{n}
+ {<-> miriam }{}
+%%%%%%% Bold extended (Italic) series
+\DeclareFontShape{HE8}{cmtt}{bx}{sl}
+ {<-> miriam }{}
+\DeclareFontShape{HE8}{cmtt}{bx}{it}
+ {<-> miriam }{}
+%</HE8cmtt>
+% \end{macrocode}
+%
+% \subsubsection{8Bit OmegaHebrew font}
+%
+% \emph{OmegaHebrew} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8OmegaHebrew>
+\def\OmegaHebrewscale{0.9}
+\DeclareFontFamily{HE8}{OmegaHebrew}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{OmegaHebrew}{m}{n}{<-> [\OmegaHebrewscale] OmegaHebrew }{}
+%\endinput % is it needed [tzafrir]
+%</HE8OmegaHebrew>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit Aharoni font}
+%
+% \emph{Aharoni} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8aharoni>
+\def\Aharoniscale{1.0}
+\DeclareFontFamily{HE8}{aharoni}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{aharoni}{m}{n} {<-> [\Aharoniscale] aharoni}{}
+\DeclareFontShape{HE8}{aharoni}{m}{it} {<-> [\Aharoniscale] aharonii}{}
+\DeclareFontShape{HE8}{aharoni}{m}{sl} {<-> [\Aharoniscale] aharonii}{}
+\DeclareFontShape{HE8}{aharoni}{b}{n} {<-> [\Aharoniscale] aharonib}{}
+\DeclareFontShape{HE8}{aharoni}{bx}{n} {<-> [\Aharoniscale] aharonib}{}
+\DeclareFontShape{HE8}{aharoni}{bx}{it} {<-> [\Aharoniscale] aharonibi}{}
+
+%\endinput % is it needed [tzafrir]
+%</HE8aharoni>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit David font}
+%
+% \emph{David} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8david>
+\def\Davidscale{1.0}
+\DeclareFontFamily{HE8}{david}{\hyphenchar\font45}
+
+\DeclareFontShape{HE8}{david}{m}{n} {<-> [\Davidscale] david}{}
+\DeclareFontShape{HE8}{david}{m}{it} {<-> [\Davidscale] davidi}{}
+\DeclareFontShape{HE8}{david}{m}{sl} {<-> [\Davidscale] davidi}{}
+\DeclareFontShape{HE8}{david}{b}{n} {<-> [\Davidscale] davidb}{}
+\DeclareFontShape{HE8}{david}{bx}{n} {<-> [\Davidscale] davidb}{}
+\DeclareFontShape{HE8}{david}{bx}{it} {<-> [\Davidscale] davidbi}{}
+
+
+%\endinput % is it needed [tzafrir]
+%</HE8david>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit Drugulin font}
+%
+% \emph{Drugulin} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8drugulin>
+\def\Drugulinscale{1.0}
+\DeclareFontFamily{HE8}{drugulin}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{drugulin}{m}{n} {<-> [\Drugulinscale] drugulinb}{}
+\DeclareFontShape{HE8}{drugulin}{m}{it} {<-> [\Drugulinscale] drugulinbi}{}
+\DeclareFontShape{HE8}{drugulin}{m}{sl} {<-> [\Drugulinscale] drugulinbi}{}
+\DeclareFontShape{HE8}{drugulin}{b}{n} {<-> [\Drugulinscale] drugulinb}{}
+\DeclareFontShape{HE8}{drugulin}{bx}{n} {<-> [\Drugulinscale] drugulinb}{}
+\DeclareFontShape{HE8}{drugulin}{bx}{it} {<-> [\Drugulinscale] drugulinbi}{}
+%\endinput % is it needed [tzafrir]
+%</HE8drugulin>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit Ellinia font}
+%
+% \emph{Ellinia} is a sans-serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8ellinia>
+\def\Elliniascale{1.0}
+\DeclareFontFamily{HE8}{ellinia}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{ellinia}{m}{n} {<-> [\Elliniascale] ellinia}{}
+\DeclareFontShape{HE8}{ellinia}{m}{it} {<-> [\Elliniascale] elliniai}{}
+\DeclareFontShape{HE8}{ellinia}{m}{sl} {<-> [\Elliniascale] elliniai}{}
+\DeclareFontShape{HE8}{ellinia}{b}{n} {<-> [\Elliniascale] elliniab}{}
+\DeclareFontShape{HE8}{ellinia}{bx}{n} {<-> [\Elliniascale] elliniab}{}
+\DeclareFontShape{HE8}{ellinia}{bx}{it} {<-> [\Elliniascale] elliniabi}{}
+%\endinput % is it needed [tzafrir]
+%</HE8ellinia>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit FrankRuehl font}
+%
+% \emph{FrankRuehl} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8frankruehl>
+\def\FrankRuehlscale{1.0}
+\DeclareFontFamily{HE8}{frank}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{frank}{m}{n} {<-> [\FrankRuehlscale] frank}{}
+\DeclareFontShape{HE8}{frank}{m}{it} {<-> [\FrankRuehlscale] franki}{}
+\DeclareFontShape{HE8}{frank}{m}{sl} {<-> [\FrankRuehlscale] franki}{}
+\DeclareFontShape{HE8}{frank}{b}{n} {<-> [\FrankRuehlscale] frankb}{}
+\DeclareFontShape{HE8}{frank}{bx}{n} {<-> [\FrankRuehlscale] frankb}{}
+\DeclareFontShape{HE8}{frank}{bx}{it} {<-> [\FrankRuehlscale] frankbi}{}
+%\endinput % is it needed [tzafrir]
+%</HE8frankruehl>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit KtavYad font}
+%
+% \emph{KtavYad} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8yad>
+\def\KtavYadscale{1.0}
+\DeclareFontFamily{HE8}{yad}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{yad}{m}{n} {<-> [\KtavYadscale] yadi}{}
+\DeclareFontShape{HE8}{yad}{m}{it} {<-> [\KtavYadscale] yadi}{}
+\DeclareFontShape{HE8}{yad}{m}{sl} {<-> [\KtavYadscale] yadi}{}
+\DeclareFontShape{HE8}{yad}{b}{n} {<-> [\KtavYadscale] yadbi}{}
+\DeclareFontShape{HE8}{yad}{bx}{n} {<-> [\KtavYadscale] yadbi}{}
+\DeclareFontShape{HE8}{yad}{bx}{it} {<-> [\KtavYadscale] yadbi}{}
+%\endinput % is it needed [tzafrir]
+%</HE8yad>
+% \end{macrocode}
+%
+% \subsubsection{8Bit MiriamMono font}
+%
+% \emph{MiriamMono} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8miriam>
+\def\MiriamMonoscale{1.0}
+\DeclareFontFamily{HE8}{miriam}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{miriam}{m}{n} {<-> [\MiriamMonoscale] miriam}{}
+\DeclareFontShape{HE8}{miriam}{m}{it} {<-> [\MiriamMonoscale] miriami}{}
+\DeclareFontShape{HE8}{miriam}{m}{sl} {<-> [\MiriamMonoscale] miriami}{}
+\DeclareFontShape{HE8}{miriam}{b}{n} {<-> [\MiriamMonoscale] miriamb}{}
+\DeclareFontShape{HE8}{miriam}{bx}{n} {<-> [\MiriamMonoscale] miriamb}{}
+\DeclareFontShape{HE8}{miriam}{bx}{it} {<-> [\MiriamMonoscale] miriambi}{}
+
+%\endinput % is it needed [tzafrir]
+%</HE8miriam>
+% \end{macrocode}
+%
+%
+% \subsubsection{8Bit Nachlieli font}
+%
+% \emph{Nachlieli} is a serif hebrew font created by the omega project
+% [FILL IN CREDITS]
+% [FILL IN GENERAL SHAPE DESCRIPTION]
+% shapes: [FILL IN]
+%
+% \begin{macrocode}
+%<*HE8nachlieli>
+\def\Nachlieliscale{1.0}
+\DeclareFontFamily{HE8}{nachlieli}{\hyphenchar\font45}
+\DeclareFontShape{HE8}{nachlieli}{m}{n} {<-> [\Nachlieliscale] nachlieli}{}
+\DeclareFontShape{HE8}{nachlieli}{m}{it} {<-> [\Nachlieliscale] nachlielii}{}
+\DeclareFontShape{HE8}{nachlieli}{m}{sl} {<-> [\Nachlieliscale] nachlielii}{}
+\DeclareFontShape{HE8}{nachlieli}{b}{n} {<-> [\Nachlieliscale] nachlielib}{}
+\DeclareFontShape{HE8}{nachlieli}{bx}{n} {<-> [\Nachlieliscale] nachlielib}{}
+\DeclareFontShape{HE8}{nachlieli}{bx}{it} {<-> [\Nachlieliscale] nachlielibi}{}
+%\endinput % is it needed [tzafrir]
+%</HE8nachlieli>
+% \end{macrocode}
+%
+%
+% \subsubsection{Hebrew font switching commands}
+%
+% The \pkg{hebfont} package defines a number of high-level commands
+% (all starting with |\text..| similar to the standard \LaTeXe{}
+% font-change commands, for example |\textbf|) that have one
+% argument and typeset this argument in the requested way. These
+% commands are defined for all available Hebrew fonts defined above
+% and change only font parameters but not direction.
+%
+% For example, to use Hebrew Classic font family, the following
+% sequence of commands should be included in a \LaTeXe{} document:
+% \begin{quote}
+% |\sethebrew|\\
+% |\textclas{Hebrew text printed with Classic fonts}|
+% \end{quote}
+% or to use Hebrew with Classic fonts locally:
+% \begin{quote}
+% |\R{\textclas{Hebrew text printed with Classic fonts}}|
+% \end{quote}
+%
+% \begin{table}[t]
+% \begin{center}
+% \begin{tabular}{lll}
+% \textit{Command} & \textit{Corresponds to} &
+% \textit{Font family} \\[4pt]
+% |\textjm{..}| & |\rmfamily| & Jerusalem font \\
+% |\textds{..}| & |\bfseries| & Dead Sea font \\
+% |\textoj{..}| & |\itshape| & Old Jaffa font \\
+% & |\slshape| & \\
+% & |\emph| & \\
+% |\textta{..}| & |\sffamily| & Tel-Aviv font \\
+% & |\ttfamily| & \\[2pt]
+% |\textcrml{..}| & |\fontfamily{crml}| & Carmel fonts \\[2pt]
+% |\textfr{..}| & |\fontfamily{fr}| & Frank-Ruehl fonts \\[2pt]
+% |\textredis{..}| & |\fontfamily{redis}| & Redis fonts \\[2pt]
+% |\textclas{..}| & |\fontfamily{redis}| & Classic fonts \\[2pt]
+% |\textshold{..}| & |\fontfamily{shold}| & Shalom Old Style font \\
+% |\textshscr{..}| & |\fontfamily{shscr}| & Shalom Script font \\
+% |\textshstk{..}| & |\fontfamily{shstk}| & Shalom Stick font
+% \end{tabular}
+% \end{center}
+% \caption{Hebrew font-change commands with arguments}
+% \label{tab:fntcmds}
+% \begin{quote}
+% The font change commands provided here all start with |\text..|
+% to emphasize that they are for use in normal text and to be
+% easily memorable.
+% \end{quote}
+% \end{table}
+%
+% We declare \LaTeXe{} font commands, e.g.\ |\textjm{|\ldots|}|
+% for all available fonts. Table~\ref{tab:fntcmds} shows the
+% meanings of all these new high-level commands.
+%
+% \begin{macro}{\textjm}
+% Switches to \emph{Jerusalem} font which is default regular Hebrew
+% font (``roman'' family). Commands |\textrm{|\ldots|}| and
+% old-style |{\rm |\ldots|}| will produce the same result.
+% \begin{macrocode}
+%<*hebfont>
+\def\ivritex@tmp{HE8}
+\ifx\ivritex@tmp\HeblatexEncoding %
+ % compatibility with hebfonts:
+ \DeclareTextFontCommand{\textjm}{\rmfamily\selectfont}
+ \DeclareTextFontCommand{\textds}{\bfseries\selectfont}
+ \DeclareTextFontCommand{\textoj}{\itshape\selectfont}
+ \DeclareTextFontCommand{\textta}{\sffamily\selectfont}
+
+ % an attempt to give some replacements to the original hebfonts:
+ %
+ \DeclareTextFontCommand{\textcrml}{\fontfamily{david}\selectfont}
+ \DeclareTextFontCommand{\textfr}{\fontfamily{frank}\selectfont}
+ \DeclareTextFontCommand{\textredis}{\fontfamily{aharoni}\selectfont}
+ \DeclareTextFontCommand{\textclas}{\fontfamily{drugulin}\selectfont}
+ \DeclareTextFontCommand{\textshold}{\fontfamily{frank}\selectfont}
+ \DeclareTextFontCommand{\textshscr}{\fontfamily{yad}\selectfont}
+ \DeclareTextFontCommand{\textshstk}{\fontfamily{aharoni}\selectfont}
+ % note that redis is larger than shstk
+
+
+ \DeclareTextFontCommand{\textaha}{\fontfamily{aharoni}\selectfont}
+ \DeclareTextFontCommand{\textdav}{\fontfamily{david}\selectfont}
+ \DeclareTextFontCommand{\textdru}{\fontfamily{drugulin}\selectfont}
+ \DeclareTextFontCommand{\textel} {\fontfamily{ellinia}\selectfont}
+ % \textfr is already declared above
+ \DeclareTextFontCommand{\textmir}{\fontfamily{miriam}\selectfont}
+ \DeclareTextFontCommand{\textna} {\fontfamily{nachlieli}\selectfont}
+ % is this necessary:
+ \DeclareTextFontCommand{\textyad} {\fontfamily{yad}\selectfont}
+
+\else%
+\DeclareTextFontCommand{\textjm}{\rmfamily\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textds}
+% Switches to \emph{Dead Sea} font which is default bold font in
+% Hebrew. Commands |\textbf{|\ldots|}| and old-style
+% |{\bf |\ldots|}| will produce the same result.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textds}{\bfseries\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textoj}
+% Switches to \emph{Old Jaffa} font which is default italic font in
+% Hebrew. Commands |\textit{|\ldots|}|, |\textsl{|\ldots|}|,
+% |\emph{|\ldots|}| and old-style |{\it |\ldots|}| or
+% |{\em |\ldots|}| will produce the same result.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textoj}{\itshape\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textta}
+% Switches to \emph{Tel-Aviv} font which is default sans-serif font
+% in Hebrew. Commands |\textsf{|\ldots|}|, |\texttt{|\ldots|}| and
+% old-style |{\sf |\ldots|}| or |{\tt |\ldots|}| will produce the
+% same result (because sans-serif is used as typewriter font when
+% in Hebrew mode).
+% \begin{macrocode}
+\DeclareTextFontCommand{\textta}{\sffamily\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcrml}
+% Switches to \emph{Carmel} font. Regular and slanted variants of
+% carmel font will be used..
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcrml}{\fontfamily{crml}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textfr}
+% Switches to \emph{Frank-Ruehl} font family. Regular, bold and
+% slanted frank ruehl fonts will be used.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textfr}{\fontfamily{fr}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textredis}
+% Switches to \emph{Redis} font family. Regular, bold and slanted
+% redis fonts of various sizes will be used.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textredis}{\fontfamily{redis}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textclas}
+% Switches to \emph{Classic} font family. The normal font will be
+% hclassic and slanted --- hcaption.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textclas}{\fontfamily{clas}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textshold}
+% Switches to \emph{Shalom Old Style} font.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textshold}{\fontfamily{shold}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textshscr}
+% Switches to \emph{Shalom Script} font.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textshscr}{\fontfamily{shscr}\selectfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textshstk}
+% Switches to \emph{Shalom Stick} font.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textshstk}{\fontfamily{shstk}\selectfont}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% Finally, for backward compatibility with \LaTeX2.09. four old
+% font commands, e.g.\ |{\jm |\ldots|}| are defined too (see
+% Table~\ref{tab:oldcmds}).
+% \begin{table}[t]
+% \begin{center}
+% \begin{tabular}{lll}
+% \textit{Old font command} & \textit{Font name} &
+% \textit{Comment}\\[4pt]
+% |{\jm ..}| & Jerusalem & default regular (roman) font \\
+% |{\ds ..}| & Dead Sea & default bold font \\
+% |{\oj ..}| & Old Jaffa & default italic and slanted font \\
+% & & used also to emphasize text \\
+% |{\ta ..}| & Tel-Aviv & default sans-serif and typewriter font\\
+% \end{tabular}
+% \end{center}
+% \caption{Hebrew old font-change commands for compatibility mode}
+% \label{tab:oldcmds}
+% \end{table}
+% \begin{macrocode}
+\if@compatibility
+ \DeclareOldFontCommand{\jm}{\normalfont\rmfamily\selectfont}%
+ {\@nomath\jm}
+ \DeclareOldFontCommand{\ds}{\normalfont\bfseries\selectfont}%
+ {\@nomath\ds}
+ \DeclareOldFontCommand{\oj}{\normalfont\itshape\selectfont}%
+ {\@nomath\oj}
+ \DeclareOldFontCommand{\ta}{\normalfont\sffamily\selectfont}%
+ {\@nomath\ta}
+\fi
+%</hebfont>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/hebrew.ins b/Master/texmf-dist/source/generic/babel/hebrew.ins
new file mode 100644
index 00000000000..80f35a41eca
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/hebrew.ins
@@ -0,0 +1,215 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+%%
+%% Copyright (C) 1997 -- 1998 Boris Lavva.
+%% Copyright (C) 1989 -- 2004 by Johannes Braams,
+%% TeXniek
+%% All rights reserved.
+%%
+%% This file is contributed to the `babel' system.
+%%
+%% You are allowed to distribute this file together with all files
+%% mentioned in manifest.bbl.
+%%
+%% You are not allowed to modify its contents.
+%%
+\def\filedate{2004/02/20}
+\def\batchfile{hebrew.ins}
+\input docstrip
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+
+This is a generated file.
+
+Copyright 1997-2004 Boris Lavva and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+
+This is a generated file.
+
+Copyright 1997-2004 Boris Lavva and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\Msg{*** Generating hebrew font encoding files ***}
+\usepreamble\fdpreamble
+\generate{\file{lheenc.def}{\from{hebrew.fdd}{LHEenc}}
+ \file{lhecmr.fd}{\from{hebrew.fdd}{LHEcmr,nowarn}}
+ \file{lhecmss.fd}{\from{hebrew.fdd}{LHEcmss,nowarn}}
+ \file{lhecmtt.fd}{\from{hebrew.fdd}{LHEcmtt,nowarn}}
+ \file{lheclas.fd}{\from{hebrew.fdd}{LHEclas,nowarn}}
+ \file{he8enc.def}{\from{hebrew.fdd}{HE8enc}}
+ \file{he8cmr.fd}{\from{hebrew.fdd}{HE8cmr,nowarn}}
+ \file{he8cmss.fd}{\from{hebrew.fdd}{HE8cmss,nowarn}}
+ \file{he8cmtt.fd}{\from{hebrew.fdd}{HE8cmtt,nowarn}}
+ \file{he8aharoni.fd}{\from{hebrew.fdd}{HE8aharoni,nowarn}}
+ \file{he8david.fd}{\from{hebrew.fdd}{HE8david,nowarn}}
+ \file{he8drugulin.fd}{\from{hebrew.fdd}{HE8drugulin,nowarn}}
+ \file{he8frankruehl.fd}{\from{hebrew.fdd}{HE8frankruehl,nowarn}}
+ \file{he8yad.fd}{\from{hebrew.fdd}{HE8yad,nowarn}}
+ \file{he8miriam.fd}{\from{hebrew.fdd}{HE8miriam,nowarn}}
+ \file{he8nachlieli.fd}{\from{hebrew.fdd}{HE8nachlieli,nowarn}}
+ \file{he8OmegaHebrew.fd}{\from{hebrew.fdd}{HE8OmegaHebrew,nowarn}}
+ \file{lheshold.fd}{\from{hebrew.fdd}{LHEshold,nowarn}}
+ \file{lheshscr.fd}{\from{hebrew.fdd}{LHEshscr,nowarn}}
+ \file{lheshstk.fd}{\from{hebrew.fdd}{LHEshstk,nowarn}}
+ \file{lhefr.fd}{\from{hebrew.fdd}{LHEfr,nowarn}}
+ \file{lhecrml.fd}{\from{hebrew.fdd}{LHEcrml,nowarn}}
+ \file{lheredis.fd}{\from{hebrew.fdd}{LHEredis,nowarn}}
+ \file{hebfont.sty}{\from{hebrew.fdd}{hebfont}}
+ }
+
+\Msg{*** Generating hebrew input encoding files ***}
+\usepreamble\mainpreamble
+\generate{\file{8859-8.def}{\from{hebinp.dtx}{8859-8}}
+ \file{cp1255.def}{\from{hebinp.dtx}{cp1255}}
+ \file{cp862.def}{\from{hebinp.dtx}{cp862}}
+ \file{si960.def}{\from{hebinp.dtx}{si960}}
+ }
+
+\Msg{*** Generating hebrew language support files ***}
+\generate{\file{hebrew.ldf}{\from{hebrew.dtx}{hebrew}}
+ \file{rlbabel.def}{\from{hebrew.dtx}{rightleft}}
+ \file{hebcal.sty}{\from{hebrew.dtx}{calendar}}
+ }
+
+\Msg{*** Generating hebrew 2.09 compatibility files ***}
+\generate{\file{hebrew_newcode.sty}{\from{heb209.dtx}{newcode}}
+ \file{hebrew_p.sty}{\from{heb209.dtx}{pccode}}
+ \file{hebrew_oldcode.sty}{\from{heb209.dtx}{oldcode}}
+ }
+
+\ifToplevel{
+\Msg{*************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.cls, *.sty, *.ldf, *.fd and *.def}
+\Msg{*}
+\Msg{* To produce the documentation run `hebrew.dtx' through LaTeX}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{*************************************************************}
+}
+
+\endbatchfile
diff --git a/Master/texmf-dist/source/generic/babel/icelandic.dtx b/Master/texmf-dist/source/generic/babel/icelandic.dtx
new file mode 100644
index 00000000000..7b4be56c383
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/icelandic.dtx
@@ -0,0 +1,749 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{546}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{icelandic.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{icelandic}
+%\fi
+%\ProvidesFile{icelandic.dtx}
+ [2005/03/30 v1.1g Icelandic support from the babel system]
+%\iffalse
+%% File iceland.dtx
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989--2005
+%% by Johannes Braams, TeXniek
+%
+%% Icelandic Language Definition File
+%% Copyright (C) 1996--2005
+%% by Einar \'Arnason <einar@lif.hi.is>
+%% Johannes Braams, TeXniek
+%
+%% Please report errors to: Einar \'Arnason
+%% einar at lif.hi.is
+%% or to: J.L. Braams
+%% babel at braams.cistron.nl
+%%
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\usepackage{t1enc}
+\usepackage[icelandic,english]{babel}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+\begin{center}
+ \textbf{\Large A Babel language definition file for
+ Icelandic}\\[3mm]^^A\]
+ Einar \'Arnason\\
+ \texttt{einar@lif.hi.is}
+\end{center}
+ \DocInput{icelandic.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{iceland.dtx}
+%
+%
+% \changes{icelandic-1.1c}{1997/05/21}{Removed code already present in
+% \file{babel.def}}
+%
+% \section{The Icelandic language}
+%
+% \subsection{Overview}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. } defines all the language definition macros for
+% the Icelandic language
+%
+% Customization for the Icelandic language was made following
+% several official and semiofficial publications~\cite{74:_augl,
+% 77:_augl,88:_reglur,94:_si,97:_forst_fs}. These publications do
+% not always agree and we indicate those instances.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:icelandic-extras} an overview is given of its
+% purpose.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{otherlanguage*}{icelandic}
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |"`| & for Icelandic left double quotes (looks like ,,). \\
+% |"'| & for Icelandic right double quotes. \\
+% |">| & for Icelandic `french' left double quotes
+% (similar to $>>$).\\
+% |"<| & for Icelandic `french' right double quotes
+% (similar to $<<$).\\
+% |"o| & for old Icelandic "o \\
+% |"O| & for old Icelandic "O \\
+% |"ó| & for old Icelandic "ó \\
+% |"Ó| & for old Icelandic "Ó \\
+% |"e| & for old Icelandic "e \\
+% |"E| & for old Icelandic "E \\
+% |"é| & for old Icelandic "é \\
+% |"É| & for old Icelandic "É \\
+% |\tala| & for typesetting numbers\\
+% |\grada| & for the `degree' symbol\\
+% |\gradur| & for `degrees', e.g. 5~\gradur C\\
+% |\upp| & for textsuperscript \\
+% \end{tabular}
+% \end{otherlanguage*}
+% \caption{The shorthands and extra definitions made
+% by \file{icelandic.ldf}}\label{tab:icelandic-extras}
+% \end{center}
+% \end{table}
+% The shorthands in table~\ref{tab:icelandic-extras} can also be
+% typeset by using the commands in
+% table~\ref{tab:icelandic-commands}.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{otherlanguage*}{icelandic}
+% \begin{tabular}{lp{8cm}}
+% |\ilqq| & for Icelandic left double quotes
+% (looks like ,,). \\
+% |\irqq| & for Icelandic right double quotes
+% (looks like ``). \\
+% |\ilq| & for Icelandic left single quotes
+% (looks like ,). \\
+% |\irq| & for Icelandic right single quotes
+% (looks like `). \\
+% |\iflqq| & for Icelandic `french' left double quotes
+% (similar to $>>$).\\
+% |\ifrqq| & for Icelandic `french' right double quotes
+% (similar to $<<$).\\
+% |\ifrq| & for Icelandic `french' right single quotes
+% (similar to $<$).\\
+% |\iflq| & for Icelandic `french' left single quotes
+% (similar to $>$). \\
+% |\dq| & the original quotes character (|"|). \\
+% |\oob| & for old Icelandic "o \\
+% |\Oob| & for old Icelandic "O \\
+% |\ooob| & for old Icelandic "ó \\
+% |\OOob| & for old Icelandic "Ó \\
+% |\eob| & for old Icelandic "e \\
+% |\Eob| & for old Icelandic "E \\
+% |\eeob| & for old Icelandic "é \\
+% |\EEob| & for old Icelandic "É \\
+% \end{tabular}
+% \end{otherlanguage*}
+% \caption{Commands which produce quotes and old Icelandic
+% diacritics, defined by
+% \file{icelandic.ldf}}\label{tab:icelandic-commands}
+% \end{center}
+% \end{table}
+%
+% \begin{thebibliography}{1}
+%
+% \bibitem{88:_reglur}
+% Alþingi.
+% \newblock {\em Reglur um frágang þingskjala og prentun umræðna},
+% 1988.
+%
+% \bibitem{74:_augl}
+% Auglýsing um greinarmerkjasetningu.
+% \newblock Stj.tíð B, nr. 133/1974, 1974.
+%
+% \bibitem{77:_augl}
+% Auglýsing um breyting auglýsingu nr. 132/1974 um íslenska
+% stafsetningu.
+% \newblock Stj.tíð B, nr. 261/1977, 1977.
+%
+% \bibitem{unknown72:_first_gramm_treat}
+% Einar Haugen, editor.
+% \newblock {\em First Grammatical Treatise}.
+% \newblock Longman, London, 2 edition, 1972.
+%
+% \bibitem{97:_forst_fs}
+% Staðlaráð Íslands og Fagráð í upplýsingatækni, Reykjavík.
+% \newblock {\em Forstaðall FS 130:1997}, 1997.
+%
+% \bibitem{94:_si}
+% STRÍ Staðlaráð Íslands.
+% \newblock {\em SI - kerfið}, 2 edition, 1994.
+%
+% \end{thebibliography}
+%
+% \StopEventually{}
+%
+%
+% \subsection{\TeX{}nical details}
+%
+% When this file was read through the option \Lopt{icelandic} we make
+% it behave as if \Lopt{icelandic} was specified.
+%
+% \begin{macrocode}
+\def\bbl@tempa{icelandic}
+\ifx\CurrentOption\bbl@tempa
+ \def\CurrentOption{icelandic}
+\fi
+% \end{macrocode}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{icelandic} will be an `unknown' language, so we
+% have to make it known. So we check for the existence of
+% |\l@icelandic| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@icelandic\@undefined
+ \@nopatterns{Icelandic}
+ \adddialect\l@icelandic0
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\if@Two@E}
+% We will need a new `if' : |\if@Two@E| is true if and only if
+% \LaTeXe{} is running \emph{not} in compatibility mode. It is
+% used in the definitions of the command |\tala| and |\upp|.
+% The definition is somewhat complicated, due to the fact that
+% |\if@compatibility| is not recognized as a |\if| in
+% \LaTeX-2.09 based formats.
+% \begin{macrocode}
+\newif\if@Two@E \@Two@Etrue
+\def\@FI@{\fi}
+\ifx\@compatibilitytrue\@undefined
+ \@Two@Efalse \def\@FI@{\relax}
+\else
+ \if@compatibility \@Two@Efalse \fi
+\@FI@
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\extrasicelandic}
+% \begin{macro}{\noextrasicelandic}
+%
+% The macro |\extrasicelandic|
+% will perform all the extra definitions needed for the Icelandic
+% language. The macro |\noextrasicelandic| is used to cancel the
+% actions of |\extrasicelandic|.
+%
+% For Icelandic the \texttt{"} character is
+% made active. This is done once, later on its definition may vary.
+% \begin{macrocode}
+\initiate@active@char{"}
+\@namedef{extras\CurrentOption}{%
+ \languageshorthands{icelandic}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{icelandic-1.1e}{1999/12/17}{Deactivate shorthands ouside of
+% Icelandic}
+% \begin{macrocode}
+\addto\noextrasicelandic{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+% The icelandic hyphenation patterns can be used with
+% |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{icelandic-1.1f}{2000/09/22}{Now use \cs{providehyphenmins}
+% to provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The code above is necessary because we need an extra active
+% character. This character is then used as indicated in
+% table~\ref{tab:icelandic-commands}.
+%
+% To be able to define the function of |"|, we first define a
+% couple of `support' macros.
+%
+% \subsection{Captionnames and date}
+%
+% The next step consists of defining the Icelandic equivalents for
+% the \LaTeX{} captionnames.
+%
+% \begin{macro}{\captionsicelandic}
+% The macro |\captionsicelandic| will define all strings used
+% used in the four standard document classes provided
+% with \LaTeX.
+% \changes{icelandic-1.1f}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{icelandic-1.1g}{2002/01/00}{Only use 7-bit ASCII characters
+% in order to keep the texts input encoding independant}
+% \changes{icelandic-1.1g}{2002/01/09}{Added translation for Glossary}
+% \begin{macrocode}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{Form\'{a}li}%
+ \def\refname{Heimildir}%
+ \def\abstractname{\'{U}tdr\'{a}ttur}%
+ \def\bibname{Heimildir}%
+ \def\chaptername{Kafli}%
+ \def\appendixname{Vi{\dh}auki}%
+ \def\contentsname{Efnisyfirlit}%
+ \def\listfigurename{Myndaskr\'{a}}%
+ \def\listtablename{T\"{o}fluskr\'{a}}%
+ \def\indexname{Atri{\dh}isor{\dh}askr\'{a}}%
+ \def\figurename{Mynd}%
+ \def\tablename{Tafla}%
+ \def\partname{Hluti}%
+ \def\enclname{Hj\'{a}lagt}%
+ \def\ccname{Samrit}%
+ \def\headtoname{Til:}% in letter
+ \def\pagename{Bla{\dh}s\'{\i}{\dh}a}%
+ \def\seename{Sj\'{a}}%
+ \def\alsoname{Sj\'{a} einnig}%
+ \def\proofname{S\"{o}nnun}%
+ \def\glossaryname{Or{\dh}alisti}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateicelandic}
+% The macro |\dateicelandic| redefines the command |\today|
+% to produce Icelandic dates.
+% \changes{icelandic-1.1c}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{icelandic-1.1c}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dateicelandic{%
+ \def\today{\number\day.~\ifcase\month\or
+ jan\'{u}ar\or febr\'{u}ar\or mars\or apr\'{\i}l\or ma\'{\i}\or
+ j\'{u}n\'{\i}\or j\'{u}l\'{\i}\or \'{a}g\'{u}st\or september\or
+ okt\'{o}ber\or n\'{o}vember\or desember\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Icelandic quotation marks}
+%
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the icelandic and icelandic `french' quotes.
+% The icelandic `french' guillemets are the reverse of french
+% guillemets. We define single icelandic `french' quotes for
+% compatibility. Shorthands are provided for a number of different
+% quotation marks, which make them useable both outside and
+% inside mathmode.
+%
+% \begin{macrocode}
+\let\ilq\grq
+\let\irq\grq
+\let\iflq\frq
+\let\ifrq\flq
+\let\ilqq\glqq
+\let\irqq\grqq
+\let\iflqq\frqq
+\let\ifrqq\flqq
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{icelandic}{"`}{\glqq}
+\declare@shorthand{icelandic}{"'}{\grqq}
+\declare@shorthand{icelandic}{">}{\frqq}
+\declare@shorthand{icelandic}{"<}{\flqq}
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{icelandic}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{icelandic}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \bbl@allowhyphens}{}}
+\declare@shorthand{icelandic}{""}{\hskip\z@skip}
+\declare@shorthand{icelandic}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{icelandic}{"=}{\nobreak-\hskip\z@skip}
+% \end{macrocode}
+%
+%
+% \subsection{Old Icelandic}
+% \label{oldicelandic}
+%
+% \changes{icelandic-1.1}{1997/04/24}{Added definitions for old
+% icelandic.}
+%
+% In old Icelandic some letters have special diacritical marks,
+% described for example in \emph{First Grammatical
+% Treatise}~\cite{unknown72:_first_gramm_treat,97:_forst_fs}. We
+% provide these in the \texttt{T1} encoding with the `ogonek'. The
+% ogonek is placed with the letters `o', and `O', `ó' and `Ó', `e'
+% and `E', and `é' and `É'. Shorthands are provided for these as
+% well.
+%
+% The following code by Leszek Holenderski lifted from
+% \texttt{polish.dtx} is designed to position the diacritics
+% correctly for every font in every size. These macros need a
+% few extra dimension variables.
+%
+% \begin{macrocode}
+\newdimen\pl@left
+\newdimen\pl@down
+\newdimen\pl@right
+\newdimen\pl@temp
+% \end{macrocode}
+%
+% \begin{macro}{\sob}
+% The macro |\sob| is used to put the `ogonek' in the right
+% place.
+%
+% \begin{macrocode}
+\def\sob#1#2#3#4#5{%parameters: letter and fractions hl,ho,vl,vo
+ \setbox0\hbox{#1}\setbox1\hbox{\k{}}\setbox2\hbox{p}%
+ \pl@right=#2\wd0 \advance\pl@right by-#3\wd1
+ \pl@down=#5\ht1 \advance\pl@down by-#4\ht0
+ \pl@left=\pl@right \advance\pl@left by\wd1
+ \pl@temp=-\pl@down \advance\pl@temp by\dp2 \dp1=\pl@temp
+ \leavevmode
+ \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oob}
+% \begin{macro}{\Oob}
+% \begin{macro}{\ooob}
+% \begin{macro}{\OOob}
+% \begin{macro}{\eob}
+% \begin{macro}{\Eob}
+% \begin{macro}{\eeob}
+% \begin{macro}{\EEob}
+% \begin{macrocode}
+\DeclareTextCommand{\oob}{T1}{\sob {o}{.85}{0}{.04}{0}}
+\DeclareTextCommand{\Oob}{T1}{\sob {O}{.7}{0}{0}{0}}
+\DeclareTextCommand{\ooob}{T1}{\sob {ó}{.85}{0}{.04}{0}}
+\DeclareTextCommand{\OOob}{T1}{\sob {Ó}{.7}{0}{0}{0}}
+\DeclareTextCommand{\eob}{T1}{\sob {e}{1}{0}{.04}{0}}
+\DeclareTextCommand{\Eob}{T1}{\sob {E}{1}{0}{.04}{0}}
+\DeclareTextCommand{\eeob}{T1}{\sob {é}{1}{0}{.04}{0}}
+\DeclareTextCommand{\EEob}{T1}{\sob {É}{1}{0}{.04}{0}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\declare@shorthand{icelandic}{"o}{\oob}
+\declare@shorthand{icelandic}{"O}{\Oob}
+\declare@shorthand{icelandic}{"ó}{\ooob}
+\declare@shorthand{icelandic}{"Ó}{\OOob}
+\declare@shorthand{icelandic}{"e}{\eob}
+\declare@shorthand{icelandic}{"E}{\Eob}
+\declare@shorthand{icelandic}{"é}{\eeob}
+\declare@shorthand{icelandic}{"É}{\EEob}
+% \end{macrocode}
+%
+% \subsection{Formatting numbers}
+% \label{numbers}
+%
+% \changes{icelandic-1.1a}{1997/04/26}{Added definitions for
+% formatting numbers in Icelandic and some extra utilities.}
+% This section is lifted from \texttt{frenchb.dtx} by D. Flipo.
+% In English the decimal part starts with a point and thousands
+% should be separated by a comma: an approximation of $1000\pi$
+% should be inputed as |$3{,}141.592{,}653$| in math-mode and
+% as |3,141.592,653| in text.
+% \changes{icelandic-1.1b}{1997/05/05}{Added references to various
+% publications used}
+%
+% In Icelandic the decimal part starts with a comma and thousands
+% should be separated by a space~\cite{88:_reglur} or by a
+% period~\cite{97:_forst_fs}; we have the space. The above
+% approximation of $1000\pi$ should be inputed as
+% |$3\;141{,}592\;653$| in math-mode and as something like
+% |3~141,592~653| in text. Braces are mandatory around the comma in
+% math-mode, the reason is mentioned in the \TeX{}book p.~134:
+% the comma is of type |\mathpunct| (thus normally followed by a
+% space) while the point is of type |\mathord| (no space added).
+%
+% Thierry Bouche suggested that a second type of comma, of type
+% |\mathord| would be useful in math-mode, and proposed to
+% introduce a command (named |\decimalsep| in this package),
+% the expansion of which would depend on the current language.
+%
+% Vincent Jalby suggested a command |\nombre| to conveniently
+% typeset numbers: inputting |\nombre{3141,592653}| either in
+% text or in math-mode will format this number properly according
+% to the current language (Icelandic or non-Icelandic). We use
+% |\nombre| to define command |\tala| in Icelandic.
+%
+% |\tala| accepts an optional argument which happens to be
+% useful with the extension `dcolumn', it specifies the decimal
+% separator used in the \emph{source code}:
+% |\newcolumntype{d}{D{,}{\decimalsep}{-1}}| \\
+% |\begin{tabular}{|d|}\hline | \\
+% | 3,14 \\ | \\
+% | \tala[,]{123,4567} \\ | \\
+% | \tala[,]{9876,543}\\\hline| \\
+% |\end{tabular} | \\
+% will print a column of numbers aligned on the decimal point
+% (comma or point depending on the current language), each slice
+% of 3 digits being separated by a space or a comma according to
+% the current language.
+%
+% \begin{macro}{\decimalsep}
+% \begin{macro}{\thousandsep}
+% We need a internal definition, valid in both text and math-mode,
+% for the comma (|\@comma@|) and another one for the unbreakable
+% fixed length space (no glue) used in Icelandic (|\f@thousandsep|).
+%
+% The commands |\decimalsep| and |\thousandsep| get default
+% definitions (for the English language) when |icelandic| is loaded;
+% these definitions will be updated when the current language is
+% switched to or from Icelandic.
+% \begin{macrocode}
+\mathchardef\m@comma="013B \def\@comma@{\ifmmode\m@comma\else,\fi}
+\def\f@thousandsep{\ifmmode\mskip5.5mu\else\penalty\@M\kern.3em\fi}
+\newcommand{\decimalsep}{.} \newcommand{\thousandsep}{\@comma@}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \def\decimalsep{\@comma@}%
+ \def\thousandsep{\f@thousandsep}}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \def\decimalsep{.}%
+ \def\thousandsep{\@comma@}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\tala}
+% The decimal separator used when \emph{inputing} a number
+% with |\tala| \emph{has to be a comma}.
+% |\tala| splits the inputed number into two parts: what
+% comes before the first comma will be formatted by
+% \cs{@integerpart} while the rest (if not empty) will be
+% formatted by \cs{@decimalpart}. Both parts, once formatted
+% separately will be merged together with between them, either
+% the decimal separator \cs{decimalsep} or (in \LaTeXe{}
+% \emph{only}) the optional argument of |\tala|.
+%
+% \begin{macrocode}
+\if@Two@E
+ \newcommand{\tala}[2][\decimalsep]{%
+ \def\@decimalsep{#1}\@tala#2\@empty,\@empty,\@nil}
+\else
+ \newcommand{\tala}[1]{%
+ \def\@decimalsep{\decimalsep}\@tala#1\@empty,\@empty,\@nil}
+\fi
+\def\@tala#1,#2,#3\@nil{%
+ \ifx\@empty#2%
+ \@integerpart{#1}%
+ \else
+ \@integerpart{#1}\@decimalsep\@decimalpart{#2}%
+ \fi}
+% \end{macrocode}
+% The easiest bit is the decimal part:
+% We attempt to read the first four digits of the decimal part, if
+% it has less than 4 digits, we just have to print them, otherwise
+% |\thousandsep| has to be appended after the third digit, and the
+% algorithm is applied recursively to the rest of the decimal part.
+% \begin{macrocode}
+\def\@decimalpart#1{\@@decimalpart#1\@empty\@empty\@empty}
+\def\@@decimalpart#1#2#3#4{#1#2#3%
+ \ifx\@empty#4%
+ \else
+ \thousandsep\expandafter\@@decimalpart\expandafter#4%
+ \fi}
+% \end{macrocode}
+% Formatting the integer part is more difficult because the slices
+% of 3 digits start from the \emph{bottom} while the number is
+% read from the top!
+% This (tricky) code is borrowed from David Carlisle's comma.sty.
+% \begin{macrocode}
+\def\@integerpart#1{\@@integerpart{}#1\@empty\@empty\@empty}
+\def\@@integerpart#1#2#3#4{%
+ \ifx\@empty#2%
+ \@addthousandsep#1\relax
+ \else
+ \ifx\@empty#3%
+ \@addthousandsep\@empty\@empty#1#2\relax
+ \else
+ \ifx\@empty#4%
+ \@addthousandsep\@empty#1#2#3\relax
+ \else
+ \@@integerpartafterfi{#1#2#3#4}%
+ \fi
+ \fi
+ \fi}
+\def\@@integerpartafterfi#1\fi\fi\fi{\fi\fi\fi\@@integerpart{#1}}
+\def\@addthousandsep#1#2#3#4{#1#2#3%
+ \if#4\relax
+ \else
+ \thousandsep\expandafter\@addthousandsep\expandafter#4%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Extra utilities}
+%
+% We now provide the Icelandic user with some extra utilities.
+%
+% \begin{macro}{\upp}
+% |\upp| is for typesetting superscripts. |\upp| relies on
+% \begin{macro}{\upp@size}
+% The internal macro |\upp@size| holds the size at which the
+% superscript will be typeset. The reason for this is that we have
+% to specify it differently for different formats.
+% \begin{macrocode}
+\ifx\sevenrm\@undefined
+ \ifx\@ptsize\@undefined
+ \let\upp@size\small
+ \else
+ \ifx\selectfont\@undefined
+% \end{macrocode}
+% In this case the format is the original \LaTeX-2.09:
+% \begin{macrocode}
+ \ifcase\@ptsize
+ \let\upp@size\ixpt\or
+ \let\upp@size\xpt\or
+ \let\upp@size\xipt
+ \fi
+% \end{macrocode}
+% When |\selectfont| is defined we probably have NFSS available:
+% \begin{macrocode}
+ \else
+ \ifcase\@ptsize
+ \def\upp@size{\fontsize\@ixpt{10pt}\selectfont}\or
+ \def\upp@size{\fontsize\@xpt{11pt}\selectfont}\or
+ \def\upp@size{\fontsize\@xipt{12pt}\selectfont}
+ \fi
+ \fi
+ \fi
+\else
+% \end{macrocode}
+% If we end up here it must be a plain based \TeX{} format, so:
+% \begin{macrocode}
+ \let\upp@size\sevenrm
+\fi
+% \end{macrocode}
+% \end{macro}
+% Now we can define |\upp|. When \LaTeXe{} runs in
+% compatibility mode (\LaTeX-2.09 emulation), |\textsuperscript| is
+% also defined, but does no good job, so we give two different
+% definitions for |\upp| using |\if@Two@E|.
+% \begin{macrocode}
+\if@Two@E
+ \DeclareRobustCommand*{\upp}[1]{\textsuperscript{#1}}
+\else
+ \DeclareRobustCommand*{\upp}[1]{%
+ \leavevmode\raise1ex\hbox{\upp@size#1}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Some definitions for special characters.
+% |\grada| needs a special treatment: it is |\char6|
+% in T1-encoding and |\char23| in OT1-encoding.
+% \begin{macrocode}
+\ifx\fmtname\LaTeXeFmtName
+ \DeclareTextSymbol{\grada}{T1}{6}
+ \DeclareTextSymbol{\grada}{OT1}{23}
+\else
+ \def\T@one{T1}
+ \ifx\f@encoding\T@one
+ \newcommand{\grada}{\char6}
+ \else
+ \newcommand{\grada}{\char23}
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\gradur}
+% Macro for typesetting the abbreviation for `degrees' (as in
+% `degrees Celsius'). As the bounding box of the character `degree'
+% has \emph{very} different widths in CMR/DC and PostScript fonts,
+% we fix the width of the bounding box of |\gradur| to 0.3\,em,
+% this lets the symbol `degree' stick to the preceding
+% (e.g., |45\gradur|) or following character (e.g., |20~\gradur C|).
+% \begin{macrocode}
+\DeclareRobustCommand*{\gradur}{%
+ \leavevmode\hbox to 0.3em{\hss\grada\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/icelandic.ins b/Master/texmf-dist/source/generic/babel/icelandic.ins
new file mode 100644
index 00000000000..21ba5daade9
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/icelandic.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2000/09/26}
+\def\batchfile{icelandic.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{icelandic.ldf}{\from{icelandic.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/interlingua.dtx b/Master/texmf-dist/source/generic/babel/interlingua.dtx
new file mode 100644
index 00000000000..56b109fdca7
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/interlingua.dtx
@@ -0,0 +1,207 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{85}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{interlingua.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{interlingua}
+%\fi
+%\ProvidesFile{interlingua.dtx}
+ [2005/03/30 v1.6 Interlingua support from the babel system]
+%\iffalse
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source code for
+% the Interlingua language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\usepackage{url}
+\begin{document}
+ \DocInput{interlingua.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{interlingua.dtx}
+%
+% \section{The Interlingua language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% Interlingua language. This file was contributed by Peter
+% Kleiweg, kleiweg at let.rug.nl.
+%
+% Interlingua is an auxiliary language, built from the common
+% vocabulary of Spanish/Portuguese, English, Italian and French,
+% with some normalisation of spelling. The grammar is very easy,
+% more similar to English's than to neolatin languages. The site
+% \url{http://www.interlingua.com} is mostly written in interlingua
+% (as is \url{http://interlingua.altervista.org}), in case you want
+% to read some sample of it.
+%
+% You can have a look at the grammar at
+% \url{http://www.geocities.com/linguablau}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{interlingua}{captionsinterlingua}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{interlingua} could be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@interlingua| to see whether we have to do
+% something here.
+%
+% \begin{macrocode}
+\ifx\undefined\l@interlingua
+ \@nopatterns{Interlingua}
+ \adddialect\l@interlingua0\fi
+% \end{macrocode}
+
+% The next step consists of defining commands to switch to (and
+% from) the Interlingua language.
+%
+%
+% \begin{macro}{\interlinguahyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \begin{macrocode}
+\providehyphenmins{interlingua}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionsinterlingua}
+% The macro |\captionsinterlingua| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \begin{macrocode}
+\def\captionsinterlingua{%
+ \def\prefacename{Prefacio}%
+ \def\refname{Referentias}%
+ \def\abstractname{Summario}%
+ \def\bibname{Bibliographia}%
+ \def\chaptername{Capitulo}%
+ \def\appendixname{Appendice}%
+ \def\contentsname{Contento}%
+ \def\listfigurename{Lista de figuras}%
+ \def\listtablename{Lista de tabellas}%
+ \def\indexname{Indice}%
+ \def\figurename{Figura}%
+ \def\tablename{Tabella}%
+ \def\partname{Parte}%
+ \def\enclname{Incluso}%
+ \def\ccname{Copia}%
+ \def\headtoname{A}%
+ \def\pagename{Pagina}%
+ \def\seename{vide}%
+ \def\alsoname{vide etiam}%
+ \def\proofname{Prova}%
+ \def\glossaryname{Glossario}%
+ }
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\dateinterlingua}
+% The macro |\dateinterlingua| redefines the command |\today| to
+% produce Interlingua dates.
+% \begin{macrocode}
+\def\dateinterlingua{%
+ \def\today{le~\number\day\space de \ifcase\month\or
+ januario\or februario\or martio\or april\or maio\or junio\or
+ julio\or augusto\or septembre\or octobre\or novembre\or
+ decembre\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+
+% \begin{macro}{\extrasinterlingua}
+% \begin{macro}{\noextrasinterlingua}
+% The macro |\extrasinterlingua| will perform all the extra
+% definitions needed for the Interlingua language. The macro
+% |\noextrasinterlingua| is used to cancel the actions of
+% |\extrasinterlingua|. For the moment these macros are empty but
+% they are defined for compatibility with the other
+% language definition files.
+%
+% \begin{macrocode}
+\addto\extrasinterlingua{}
+\addto\noextrasinterlingua{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{interlingua}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/interlingua.ins b/Master/texmf-dist/source/generic/babel/interlingua.ins
new file mode 100644
index 00000000000..679af1e10c4
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/interlingua.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2003/11/13}
+\def\batchfile{interlingua.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{interlingua.ldf}{\from{interlingua.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/irish.dtx b/Master/texmf-dist/source/generic/babel/irish.dtx
new file mode 100644
index 00000000000..221c08f91a5
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/irish.dtx
@@ -0,0 +1,218 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{122}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{irish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{irish}
+%\fi
+%\ProvidesFile{irish.dtx}
+ [2005/03/30 v1.0h Irish support from the babel system]
+%\iffalse
+%% File `irish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Irish language definition file.
+%
+% The Gaeilge or Irish Gaelic terms were tranlated from those
+% provided by Fraser Grant \texttt{FRASER@CERNVM} by Marion Gunn.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{irish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{irish.dtx}
+%
+% \changes{irish-1.0b}{1995/06/14}{Corrected typo (PR1652)}
+% \changes{irish-1.0e}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Irish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Marion Gunn.} defines all
+% the language definition macros for the Irish language.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{irish-1.0e}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{irish}\captionsirish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{irish} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@irish| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@irish\@undefined
+ \@nopatterns{irish}
+ \adddialect\l@irish0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Irish language.
+%
+% \begin{macro}{\irishhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{irish-1.0f}{1998/06/08}{Added definition of
+% \cs{hyphenmins}}
+% \changes{irish-1.0h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\thr@@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionsirish}
+% The macro |\captionsirish| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \changes{irish-1.0c}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{irish-1.0f}{1998/06/08}{Added missing translations provided
+% in PR 2719}
+% \changes{irish-1.0h}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsirish{%
+ \def\prefacename{R\'eamhr\'a}% <-- also "Brollach"
+ \def\refname{Tagairt\'{\i}}%
+ \def\abstractname{Achoimre}%
+ \def\bibname{Leabharliosta}%
+ \def\chaptername{Caibidil}%
+ \def\appendixname{Aguis\'{\i}n}%
+ \def\contentsname{Cl\'ar \'Abhair}%
+ \def\listfigurename{L\'ear\'aid\'{\i}}%
+ \def\listtablename{T\'abla\'{\i}}%
+ \def\indexname{Inn\'eacs}%
+ \def\figurename{L\'ear\'aid}%
+ \def\tablename{T\'abla}%
+ \def\partname{Cuid}%
+ \def\enclname{faoi iamh}%
+ \def\ccname{cc}% abrv. `c\'oip chuig'
+ \def\headtoname{Go}%
+ \def\pagename{Leathanach}%
+ \def\seename{f\'each}%
+ \def\alsoname{f\'each freisin}%
+ \def\proofname{Cruth\'unas}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateirish}
+% The macro |\dateirish| redefines the command |\today| to produce
+% Irish dates.
+% \changes{irish-1.0f}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{irish-1.0f}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dateirish{%
+ \def\today{%
+ \number\day\space \ifcase\month\or
+ Ean\'air\or Feabhra\or M\'arta\or Aibre\'an\or
+ Bealtaine\or Meitheamh\or I\'uil\or L\'unasa\or
+ Me\'an F\'omhair\or Deireadh F\'omhair\or
+ M\'{\i} na Samhna\or M\'{\i} na Nollag\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasirish}
+% \begin{macro}{\noextrasirish}
+% The macro |\extrasirish| will perform all the extra definitions
+% needed for the Irish language. The macro |\noextrasirish| is used
+% to cancel the actions of |\extrasirish|. For the moment these
+% macros are empty but they are defined for compatibility with the
+% other language definition files.
+%
+% \begin{macrocode}
+\addto\extrasirish{}
+\addto\noextrasirish{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{irish-1.0e}{1996/11/03}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{irish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/irish.ins b/Master/texmf-dist/source/generic/babel/irish.ins
new file mode 100644
index 00000000000..33a3172ee2b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/irish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{irish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{irish.ldf}{\from{irish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/italian.dtx b/Master/texmf-dist/source/generic/babel/italian.dtx
new file mode 100644
index 00000000000..ea9899f79f2
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/italian.dtx
@@ -0,0 +1,857 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{419}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{italian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{italian}
+%\fi
+%\ProvidesFile{italian.dtx}
+ [2005/02/05 v1.2q Italian support from the babel system]
+%\iffalse
+%% File `italian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams babel at braams.cistron.nl
+%% Claudio Beccari beccari at polito.it
+%
+% This file is part of the babel system, it provides the source
+% code for the Italian language definition file.
+% The original version of this file was written by Maurizio
+% Codogno, (mau@beatles.cselt.stet.it). Several features were added
+% by Claudio Beccari, (beccari@polito.it).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{italian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{italian.dtx}
+%
+% \changes{italian-0.99}{1990/07/11}{First version, from english.doc}
+% \changes{italian-1.0}{1991/04/23}{Modified for babel 3.0}
+% \changes{italian-1.0a}{1991/05/23}{removed typo}
+% \changes{italian-1.0b}{1991/05/29}{Removed bug found by van der Meer}
+% \changes{italian-1.0e}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{italian-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{italian-1.2}{1994/02/09}{Update for\ LaTeXe}
+% \changes{italian-1.2e}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{italian-1.2f}{1995/05/28}{Updated for babel 3.5}
+% \changes{italian-1.2i}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+% \changes{italian-1.2l}{1999/04/24}{Added \cs{unit}, \cs{ap}, and
+% \cs{ped} macros}
+% \changes{italian-1.2m}{2000/01/05}{Added support for etymological
+% hyphenation}
+% \changes{italian-1.2n}{2000/02/02}{Completely modified etymological
+% hyphenation facility}
+% \changes{italian-1.2n}{2000/05/28}{Added several commands for the
+% caporali double quotes and for simplifying the accented vowel input}
+% \changes{italian-1.2o}{2000/12/12}{Added \cs{glossaryname}}
+% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of
+% \cs{add@acc} since its functionality has been introduced into the
+% kernel of LaTeX 2001/06/01}
+% \changes{italian-1.2q}{2005/02/05}{Added test for avoiding conflict
+% with package units.sty; adjusted caporali functionality, since
+% the previous one did not work with the standard (although obsolete)
+% slides class file}
+% \section{The Italian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author is Maurizio Codogno,
+% (\texttt{mau@beatles.cselt.stet.it}). It has been largely revised
+% by Johannes Braams and Claudio Beccari} defines all the
+% language-specific macros for the Italian language.
+%
+% The features of this language definition file are the following:
+% \begin{enumerate}
+% \item The Italian hyphenation is invoked, provided that file
+% \texttt{ithyph.tex} was loaded when the \LaTeXe\ format was
+% built; in case it was not, read the information coming with your
+% distribution of the \TeX\ software, and the \babel\
+% documentation.
+% \item The language dependent fixed words to be inserted by such
+% commands as |\chapter|, |\caption|, |\tableofcontents|,
+% etc. are redefined in accordance with the Italian
+% typographical practice.
+% \item Since Italian can be easily hyphenated and Italian practice
+% allows to break a word before the last two letters, hyphenation
+% parameters have been set accordingly, but a very high demerit
+% value has been set in order to avoid word breaks in the
+% penultimate line of a paragraph. Specifically the |\clubpenalty|,
+% and the |\widowpenalty| are set to rather high values and
+% |\finalhyphendemerits| is set to such a high value that
+% hyphenation is prohibited between the last two lines of a
+% paragraph.
+% \item Some language specific shortcuts have been defined so as to
+% allow etymological hyphenation, specifically |"| inserts a
+% break point in any word boundary that the typesetter chooses,
+% provided it is not followed by and accented letter (very unlikely
+% in Italian, where compulsory accents fall only on the last and
+% ending vowel of a word, but may take place with compound words
+% that include foreign roots), and \verb="|= when the desired break
+% point falls before an accented letter.
+% \item The shortcut |""| introduces the raised (English) opening
+% double quotes; this shortcut proves its usefulness when one
+% reminds that the Italian keyboard misses the backtick key, and
+% the backtick on a Windows based platform may be obtained only by
+% pressing the \texttt{Alt} key while inputting the numerical code
+% 0096; very, very annoying!
+% \item The shortcuts |"<| and |">| insert the French guillemots,
+% sometimes used in Italian typography; with the T1 font encoding
+% the ligatures |<<| and |>>| should insert such signs directly,
+% but not all the virtual fonts that claim to follow the T1 font
+% encoding actually contain the guillemots; with the OT1 encoding
+% the guillemots are not available and must be faked in some
+% way. By using the |"<| and |">| shortcuts (even with the T1
+% encoding) the necessary tests are performed and in case the
+% suitable glyphs are taken from other fonts normally available
+% with any good, modern \LaTeX\ distribution.
+% \item Three new specific commands |\unit|, |\ped|, and |\ap| are
+% introduced so as to enable the correct composition of technical
+% mathematics according to the ISO~31/XI recommendations. |\unit|
+% does not get redefined if the \babel\ package is loaded \emph{after}
+% the package \texttt{units.sty} whose homonymous command plays
+% a different role and follows a different syntax.
+% \end{enumerate}
+%
+% For this language a limited number of shortcuts has been defined,
+% table~\ref{t:itshrtct}, some of which are used to overcome
+% certain limitations of the Italian keyboard; in
+% section~\ref{s:itkbd} there are other comments and hints in order
+% to overcome some other keyboard limitations.
+%
+% \begin{table}[htb]\centering
+% \begin{tabular}{cp{80mm}}
+% |"| & inserts a compound word mark where hyphenation is legal;
+% it allows etymological hyphenation which is recommended
+% for technical terms, chemical names and the like; it
+% does not work if the next character is represented with
+% a control sequence or is an accented character.\\
+% \texttt{\string"\string|}
+% & the same as the above without the limitation on
+% characters represented with control sequences or accented
+% ones.\\
+% |""| & inserts open quotes ``.\\ %^^A'' emacs matching
+% |"<| & inserts open guillemots.\\
+% |">| & inserts closed guillemots.\\
+% |"/| & equivalent to |\slash|
+% \end{tabular}
+% \caption{Shortcuts for the Italian language}\label{t:itshrtct}
+% \end{table}
+%
+% \StopEventually{%
+% \begin{thebibliography}{1}
+% \bibitem{CBec} Beccari C., ``Computer Aided Hyphenation for
+% Italian and Modern Latin'', \textsf{TUGboat} vol.~13, n.~1,
+% pp.~23-33 (1992).
+% \bibitem{Becc2} Beccari C., ``Typesetting mathematics for science
+% and technology according to ISO\,31/XI'', \textsf{TUGboat}
+% vol.~18, n.~1, pp.~39-48 (1997).
+% \end{thebibliography}}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{italian-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \changes{italian-1.2j}{1996/12/29}{Added braces around second arg of
+% \cs{LdfInit}}
+% \begin{macrocode}
+%<*code>
+\LdfInit{italian}{captionsitalian}%
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{italian} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@italian| to see whether we have to do something here.
+%
+% \changes{italian-1.0}{1991/04/23}{Now use \cs{adddialect} if
+% language undefined}
+% \changes{italian-1.0h}{1991/10/08}{Removed use of \cs{@ifundefined}}
+% \changes{italian-1.1}{1992/02/16}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \changes{italian-1.2e}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@italian\@undefined
+ \@nopatterns{Italian}%
+ \adddialect\l@italian0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Italian language.
+%
+% \begin{macro}{\captionsitalian}
+% The macro |\captionsitalian| defines all strings used
+% in the four standard document classes provided with \LaTeX.
+% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global} definitions}
+% \changes{italian-1.0c}{1991/06/06}{\cs{pagename} should be
+% \cs{headpagename}}
+% \changes{italian-1.0d}{1991/07/01}{`contiene' substitued by `Allegati'
+% as suggested by Marco Bozzo (\texttt{BOZZO@CERNVM}).}
+% \changes{italian-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{italian-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{italian-1.2b}{1994/05/19}{Changed some of the words
+% following suggestions from Claudio Beccari}
+% \changes{italian-1.2g}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{italian-1.2h}{1995/07/27}{Added translation of `Proof'}
+% \begin{macrocode}
+\addto\captionsitalian{%
+ \def\prefacename{Prefazione}%
+ \def\refname{Riferimenti bibliografici}%
+ \def\abstractname{Sommario}%
+ \def\bibname{Bibliografia}%
+ \def\chaptername{Capitolo}%
+ \def\appendixname{Appendice}%
+ \def\contentsname{Indice}%
+ \def\listfigurename{Elenco delle figure}%
+ \def\listtablename{Elenco delle tabelle}%
+ \def\indexname{Indice analitico}%
+ \def\figurename{Figura}%
+ \def\tablename{Tabella}%
+ \def\partname{Parte}%
+ \def\enclname{Allegati}%
+ \def\ccname{e~p.~c.}%
+ \def\headtoname{Per}%
+ \def\pagename{Pag.}% % in Italian the abbreviation is preferred
+ \def\seename{vedi}%
+ \def\alsoname{vedi anche}%
+ \def\proofname{Dimostrazione}%
+ \def\glossaryname{Glossario}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateitalian}
+% The macro |\dateitalian| redefines the command
+% |\today| to produce Italian dates.
+% \changes{italian-1.0c}{1991/06/06}{Removed \cs{global} definitions}
+% \begin{macrocode}
+\def\dateitalian{%
+ \def\today{\number\day~\ifcase\month\or
+ gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
+ luglio\or agosto\or settembre\or ottobre\or novembre\or
+ dicembre\fi\space \number\year}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\italianhyphenmins}
+% \changes{italian-1.2b}{1994/05/19}{Added setting of left and
+% righthyphenmin according to Claudio Beccari's suggestion}
+%
+% The italian hyphenation patterns can be used with both
+% |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{italian-1.2m}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasitalian}
+% \begin{macro}{\noextrasitalian}
+%
+% \changes{italian-1.2b}{1994/05/19}{Added setting of club- and
+% widowpenalty}
+% Lower the chance that clubs or widows occur.
+% \begin{macrocode}
+\addto\extrasitalian{%
+ \babel@savevariable\clubpenalty
+ \babel@savevariable\widowpenalty
+ \clubpenalty3000\widowpenalty3000}%
+% \end{macrocode}
+%
+% \changes{italian-1.2b}{1994/05/19}{Added setting of
+% finalhyphendemerits}
+%
+% Never ever break a word between the last two lines of a paragraph
+% in italian texts.
+% \begin{macrocode}
+\addto\extrasitalian{%
+ \babel@savevariable\finalhyphendemerits
+ \finalhyphendemerits50000000}%
+% \end{macrocode}
+%
+% \changes{italian-1.2h}{1995/11/10}{Now give the apostrophe a
+% lowercase code}
+% \changes{italian-1.2l}{1999/04/5}{Changed example ``begl'italiani''
+% (obsolete spelling) with another, ``nell'altezza'', that behaves
+% the same way}
+% In order to enable the hyphenation of words such as
+% ``nell'altezza'' we give the \texttt{'} a non-zero lower case
+% code. When we do that \TeX\ finds the following hyphenation
+% points |nel-l'al-tez-za| instead of none.
+% \begin{macrocode}
+\addto\extrasitalian{%
+ \lccode`'=`'}%
+\addto\noextrasitalian{%
+ \lccode`'=0}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \changes{italian-1.2m}{2000/01/05}{Support for etymological
+% hyphenation}
+%
+% \subsection{Support for etymological hyphenation}
+%
+% In his article on Italian hyphenation \cite{CBec} Beccari pointed
+% out that the Italian language gets hyphenated on a phonetic
+% basis, although etymological hyphenation is allowed; this is in
+% contrast with what happens in Latin, for example, where
+% etymological hyphenation is always used. Since the patterns for
+% both languages would become too complicated in order to cope with
+% etymological hyphenation, in his paper Beccari proposed the
+% definition of an active character `|_|' such that it could insert
+% a ``soft'' discretionary hyphen at the compound word
+% boundary. For several reasons that idea and the specific active
+% character proved to be unpractical and was abandoned.
+%
+% This problem is so important with the majority of the European
+% languages, that \babel\ from the very beginning developed
+% the tradition of making the |"| character active so as to perform
+% several actions that turned useful with every language.
+% One of these actions consisted in defining the shortcut \verb="|=
+% that was extensively used in German and in many other languages
+% in order to insert a discretionary hyphen such that hyphenation
+% would not be precluded in the rest of the word as it happens with
+% the standard \TeX\ command |\-|.
+%
+% Meanwhile the \texttt{ec} fonts with the double Cork encoding
+% (thus formerly called the \texttt{dc} fonts) have become more or
+% less standard and are widely used by virtually all Europeans that
+% write languages with many special national characters; by so
+% doing they avoid the use of the |\accent| primitive which would
+% be required with the standard \texttt{cm} fonts; with the latter
+% fonts the primitive command |\accent| is such that hyphenation
+% becomes almost impossible, in any case strongly impeached.
+%
+% The \texttt{ec} fonts contain a special character, named
+% ``compound word mark'', that occupies position 23 in the font
+% scheme and may be input with the sequence |^^W|. Up to now,
+% apparently, this special character has never been used in a
+% practical way for the typesetting of languages rich of compound
+% words; also it has never been inserted in the hyphenation pattern
+% files of any language. Beccari modified his pattern file
+% \file{ithyph.tex v4.8b} for Italian so as to contain five new
+% patterns that involve |^^W|, and he tried to give the
+% \babel\ active character |"| a new shortcut definition,
+% so as to allow the insertion of the ``compound word mark'' in the
+% proper place within any word where two semantic fragments join
+% up. With such facility for marking the compound word boundaries,
+% etymological hyphenation becomes possible even if the patterns
+% know nothing about etymology (but the typesetter hopefully
+% does!).
+% In Italian such etymological hyphenation is desirable with
+% technical terms, chemical names, and the like.
+%
+% Even this solution proved to be inconvenient on certain UN*X
+% platforms, so Beccari resorted to another approach that uses the
+% \babel\ active character |"| and relies on the category
+% code of the character that follows |"|.
+%
+% \changes{italian-1.2n}{2000/02/02}{Completely new etymological
+% hyphenation facility}
+%
+% \begin{macrocode}
+\initiate@active@char{"}%
+\addto\extrasitalian{\bbl@activate{"}\languageshorthands{italian}}%
+% \end{macrocode}
+% \begin{macro}{\it@cwm}
+% The active character |"| is now defined for language |italian| so
+% as to perform different actions in math mode compared to text
+% mode; specifically in math mode a double quote is inserted so as
+% to produce a double prime sign, while in text mode the temporary
+% macro |\it@next| is defined so as to defer any further action
+% until the next token category code has been tested.
+% \begin{macrocode}
+\declare@shorthand{italian}{"}{%
+\ifmmode
+ \def\it@next{''}%
+\else
+ \def\it@next{\futurelet\it@temp\it@cwm}%
+\fi
+\it@next
+}%
+% \end{macrocode}
+% \begin{macro}{\it@cwm}
+% The \cs{it@next} service control sequence is such that upon its
+% execution a temporary variable \cs{it@temp} is made equivalent to
+% the next token in the input list without actually removing
+% it. Such temporary token is then tested by the macro \cs{it@cwm}
+% and if it is found to be a letter token, then it introduces a
+% compound word separator control sequence \cs{it@allowhyphens}
+% whose expansion introduces a discretionary hyphen and an
+% unbreakable space; in case the token is not a letter, then it is
+% tested against \verb=|=$_{12}$: if so a compound word separator
+% is inserted and the \verb=|= token is removed, otherwise another
+% test is performed so as to see if another double quote sign
+% follows: in this case a double open quote mark is inserted,
+% otherwise two other tests are performed so as to see if
+% guillemets have to be inserted, otherwise nothing is done.
+% The double quote shortcut for inserting a double open quote sign
+% is useful for people who are inputting Italian text by means of
+% an Italian keyboard that unfortunately misses the grave or
+% backtick key.
+% By this shortcut |""| becomes equivalent to |``| for inserting
+% raised open high double quotes.
+% \begin{macrocode}
+\def\it@@cwm{\nobreak\discretionary{-}{}{}\hskip\z@skip}%
+\def\it@@ocap#1{\it@ocap}\def\it@@ccap#1{\it@ccap}%
+\DeclareRobustCommand*{\it@cwm}{\let\it@@next\relax
+\ifcat\noexpand\it@temp a%
+ \def\it@@next{\it@@cwm}%
+\else
+ \if\noexpand\it@temp \string|%
+ \def\it@@next{\it@@cwm\@gobble}%
+ \else
+ \if\noexpand\it@temp \string<%
+ \def\it@@next{\it@@ocap}%
+ \else
+ \if\noexpand\it@temp \string>%
+ \def\it@@next{\it@@ccap}%
+ \else
+ \if\noexpand\it@temp\string/%
+ \def\it@next{\slash\@gobble}%
+ \else
+ \ifx\it@temp"%
+ \def\it@@next{``\@gobble}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+\fi
+\it@@next}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{sloppypar}
+% By this definition of |"| if one types |macro"istruzione| the
+% possible break points become \textsf{ma-cro-istru-zio-ne}, while
+% without the |"| mark they would be \textsf{ma-croi-stru-zio-ne},
+% according to the phonetic rules such that the |macro| prefix is
+% not taken as a unit.
+% A chemical name such as \texttt{des"clor"fenir"amina"cloridrato}
+% is breakable as \textsf{des-clor-fe-nir-ami-na-clo-ri-dra-to}
+% instead of \textsf{de-sclor-fe-ni-ra-mi-na-...}
+%
+% In other language description files a shortcut is defined so as
+% to allow a break point without actually inserting any hyphen
+% sign; examples are given such as \mbox{entrada/salida}; actually
+% if one wants to allow a breakpoint after the slash, it is much
+% clearer to type |\slash| instead of |/| and \LaTeX\ does
+% everything by itself; here the shortcut |"/| was introduced to
+% stand for |\slash| so that one can type |input"/output| and allow
+% a line break after the slash.
+% This shortcut works only for the slash, since in Italian such
+% constructs are extremely rare.
+% \end{sloppypar}
+%
+% Attention: the expansion of |"| takes place before the actual
+% expansion of OT1 or T1 accented sequences such as |\`{a}|;
+% therefore this etymological hyphenation facility works as it
+% should only when the semantic word fragments \textit{do not
+% start} with an accented letter; this in Italian is always
+% avoidable, because compulsory accents fall only on the last
+% vowel, but it may be necessary to mark a compound word where one
+% or more components come from a foreign language and contain
+% diacritical marks according to the spelling rules of that
+% language. In this case the special shorthand \verb!"|! may be
+% used that performs exactly as |"| normally does, except that the
+% \verb!|! sign is removed from the token input list:
+% \verb!kilo"|{\"o}rsted! gets hyphenated as
+% \texttt{ki-lo-\"or-sted}.
+%
+% \changes{italian-1.2l}{1999/04/05}{Added useful macros for
+% fulfilling ISO 31/XI regulations}
+%
+% \subsection{Facilities required by the ISO 31/XI regulations}
+% The ISO 31/XI regulations require that units of measure are
+% typeset in upright font in any circumstance, math or text, and
+% that in text mode they are separated from the numerical
+% indication of the measure with an unbreakable (thin) space.
+% The command |\unit| that was defined for achieving this
+% goal happened to conflict with the homonymous command defined by
+% the package \texttt{units.sty}; we therefore need to test if that
+% package has already been loaded so as to avoid conflicts; we assume
+% that if the user loads that package, s/he wants to use that package
+% facilities and command syntax.
+%
+% The same regulations require also that super and subscripts
+% (apices and pedices) are in upright font, \emph{not in math
+% italics}, when they represent ``adjectives'' or appositions to
+% mathematical or physical variables that do not represent
+% countable or measurable entities such as, for example,
+% $V_{\mathrm{max}}$ or $V_{\mathrm{rms}}$ for a maximum or a root
+% mean square voltage, compared to $V_i$ or $V_T$ as the $i$-th
+% voltage in a set, or a voltage that depends on the thermodynamic
+% temperature $T$. See \cite{Becc2} for a complete description of
+% the ISO regulations in connection with typesetting.
+%
+% More rarely it happens to use superscripts that are not
+% mathematical variables, such as the notation
+% $\mathbf{A}^{\!\mathrm{T}}$ to denote the transpose of matrix
+% $\mathbf{A}$; text superscripts are useful also as ordinals or
+% in old fashioned abbreviations in text mode; for example the
+% feminine ordinal $1^{\mathrm{a}}$ or the old fashioned obsolete
+% abbreviation F$^{\mathrm{lli}}$ for \mbox{Fratelli} in company
+% names (compare with ``Bros.'' for \underline{bro}ther\underline{s}
+% in American English); text subscripts are mostly used in logos.
+%
+% \begin{macro}{\unit}
+% \begin{macro}{\ap}
+% \begin{macro}{\ped}
+% First we define the new (internal) commands |\bbl@unit|, |\bbl@ap|,
+% and |\bbl@ped| as robust ones.
+% \changes{italian-1.2q}{2005/02/05}{Added testing for avoiding conflicts
+% with the units.sty package}
+% \begin{macrocode}
+\@ifpackageloaded{units}{}{%
+ \DeclareRobustCommand*{\bbl@unit}[1]{%
+ \textormath{\,\mbox{#1}}{\,\mathrm{#1}}}%
+ }%
+\DeclareRobustCommand*{\bbl@ap}[1]{%
+ \textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
+\DeclareRobustCommand*{\bbl@ped}[1]{%
+ \textormath{$_{\mbox{\fontsize\sf@size\z@
+ \selectfont#1}}$}{_\mathrm{#1}}}%
+% \end{macrocode}
+% Then we can use |\let| to define the user level commands, but in
+% case the macros already have a different meaning before entering
+% in Italian mode typesetting, we first memorize their meaning so
+% as to restore them on exit.
+% \begin{macrocode}
+\@ifpackageloaded{units}{}{%
+ \addto\extrasitalian{%
+ \babel@save\unit\let\unit\bbl@unit}%
+ }%
+\addto\extrasitalian{%
+ \babel@save\ap\let\ap\bbl@ap
+ \babel@save\ped\let\ped\bbl@ped
+ }%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Accents}\label{s:itkbd}
+% Most of the other language description files introduce a number
+% of shortcuts for inserting accents and other language specific
+% diacritical marks in a more comfortable way compared with the
+% lengthy standard \TeX\ conventions. When an Italian keyboard is
+% being used on a Windows based platform, it exhibits such
+% limitations that up to now no convenient shortcuts have been
+% developed; the reason lies in the fact that the Italian keyboard
+% lacks the grave accent (also known as ``backtick''), which is
+% compulsory on all accented vowels except the `e', but, on the
+% opposite, it carries the keys with all the accented lowercase
+% vowels; the keyboard lacks also the tie |~| (tilde) key, while
+% the curly braces require pressing three keys simultaneously.
+%
+% The best solution Italians have found so far is to use a smart
+% editor that accepts shortcut definitions such that, for example,
+% by striking |"(| one gets directly |{| on the screen and the same
+% sign is saved into the \file{.tex} file; the same smart editor
+% should be capable of translating the accented characters into the
+% standard \TeX\ sequences when writing a file to disk (for the
+% sake of file portability), and to transform the standard \TeX\
+% sequences into the corresponding signs when loading a \file{.tex}
+% file from disk to memory. Such smart editors do exist and can be
+% downloaded from the \textsc{ctan} archives.
+%
+% \changes{italian-1.2p}{2002/07/10}{Removed redefinition of \cs{add@acc} since its
+% functionality has been introduced into the kernel of LaTeX 2001/06/01}
+%
+% For what concerns the missing backtick key,
+% which is used also for inputting the open quotes, it must be
+% noticed that the shortcut |""| described above completely solves
+% the problem for \textit{double} raised open quotes; according to
+% the traditions of particular publishing houses, since there are
+% no compulsory regulations on the matter, the French guillemets
+% may be used; in this case the T1 font encoding solves the problem
+% by means of its built in ligatures |<<| and |>>|. But\dots
+%
+% \subsection{\emph{Caporali} or French double quotes}
+% Although the T1 font encoding ligatures solve the problem, there
+% are some circumstances where even the T1 font encoding cannot be
+% used, either because the author\slash typesetter wants to use the
+% OT1 encoding, or because s/he uses a font set that does
+% not comply completely with the T1 font encoding; some virtual
+% fonts, for example, are supposed to implement the double Cork
+% font encoding but actually miss some glyphs; one such virtual
+% font set is given by the \texttt{ae} virtual fonts, because they
+% are supposed to implement such double font encoding simply using
+% the \texttt{cm} fonts, of which the type~1 PostScript version
+% exists and is freely available. Since guillemets (in Italian
+% \emph{caporali}) do not exist in any \texttt{cm} latin font,
+% their glyphs must be substituted with something else that
+% approaches them.
+%
+% \changes{italian-1.2q}{2005/02/05}{Redefined the caporali machinery
+% so as to avoid incompatibilities with the slides class, as there
+% are no Cyrillic slides fonts as there are for Latins script}
+%
+% Since in French typesetting guillemets are compulsory, the French
+% language definition file resorts to a clever font substitution;
+% such file exploits the \LaTeXe\ font selection machinery so as to
+% get the guillemets from the Cyrillic fonts, because it suffices
+% to locally change the default encoding. There are several sets of
+% Cyrillic fonts, but the ones that obey the OT2 font encoding are
+% generally distributed with all recent implementations of the
+% \TeX\ software; they are part of the American Mathematical
+% Society fonts and come both as \textsf{METAFONT} source files and
+% Type~1 PostScript \texttt{.pfb} files. The availability of such
+% fonts should be guaranteed by the presence of the
+% \texttt{OT2cmr.fd} font description file. Actually the presence
+% of this file does not guarantee the completeness of your \TeX\
+% implementation; should \LaTeX\ complain about a missing Cyrillic
+% \texttt{.tfm} file (that kind of file that contains the font
+% metric parameters) and/or about missing Cyrillic \texttt(.mf)
+% files, then your \TeX\ system is \emph{incomplete} and you should
+% download such fonts from the \textsc{ctan} archives. Temporarily
+% you may issue the command |\LtxSymbCaporali| so as to approximate
+% the missing glyphs with the \LaTeX\ symbol fonts. In some case
+% warning messages are issued so as to inform the typesetter about
+% the necessity of resorting to some \emph{poor man} solution.
+%
+% In spite of these alternate fonts, we must avoid invoking unusual
+% fonts if the available encoding allows to use built in caporali.
+% As far as I know (CB) the only T1-encoded font families that miss
+% the guillemets are the AE ones; we therefore first test if the
+% default encoding id the T1 one and in this case if the AE families
+% are the default ones; in order for this to work properly it is
+% necessary to load these optional packages \emph{before} \babel.
+% If the T1 encoding is not the default one when the Italian language
+% is specified, then some substitutions must be done.
+%
+% \begin{macro}{\LtxSymbCaporali}
+% \begin{macro}{\it@ocap}
+% \begin{macro}{\it@ccap}
+% We define some macros for substituting the default guillemets; first the
+% emulation by means of the \LaTeX\ symbols; each one of these macro sets
+% actually redefines the control sequences |\it@ocap| and |\it@ccap| that
+% are the ones effectively activated by the shortcuts |"<| and |">|.
+% \begin{macrocode}
+\def\LtxSymbCaporali{%
+ \DeclareRobustCommand*{\it@ocap}{\mbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont(\kern-0.20em(}%
+ \ignorespaces}%
+ \DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi
+ \mbox{%
+ \fontencoding{U}\fontfamily{lasy}\selectfont)\kern-0.20em)}}%
+}%
+% \end{macrocode}
+% Then the substitution with any specific font that contains such
+% glyphs; it might be the CBgreek fonts, the Cyrillic one, the super-cm ones, the lm ones,
+% or any other the user might prefer (the code is adapted from the one
+% that appears in the \texttt{frenchb.ld} file; thanks to Daniel Flipo).
+% By default if the user did not select the T1 encoding, the existence of the
+% CBgreek fonts is tested; if they exist the guillemets are taken from this
+% font, and since its families are a superset of the default CM ones and they apply also
+% to typeset slides with the standard class \texttt{slides}. If the
+% CBgreek fonts are not found, then the existence of the Cyrillic ones is tested,
+% although this choice is not suited for typesetting slides;
+% otherwise the poor man solution of the \LaTeX\ special symbols is used.
+% In any case the user can force the use of the Cyrillic guillemets substitution
+% by issuing the declaration |\CyrillicCaporali| just before the
+% |\begin{document}| statement; in alternative the user can specify with
+% \begin {flushleft}
+% |\CaporaliFrom|\marg{encoding}\marg{family}\marg{opening number}\marg{closing number}
+% \end{flushleft}
+% the encoding and family of the font s/he prefers, and the slot numbers of the opening
+% and closing guillemets respectively. For example if the T1-encoded Latin Modern fonts
+% are desired the specific command should be
+% \begin {flushleft}
+% |\CaporaliFrom{T1}{lmr}{19}{20}|
+% \end{flushleft}
+% These user choices might be necessary for assuring the correct typesetting
+% with fonts that contain the required glyphs and are available also in PostScript form
+% so as to use them directly di \texttt{pdflatex}, for example.
+% \begin{macrocode}
+\def\CaporaliFrom#1#2#3#4{%
+ \DeclareFontEncoding{#1}{}{}%
+ \DeclareTextCommand{\it@ocap}{T1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
+ \DeclareTextCommand{\it@ccap}{T1}{\ifdim\lastskip>\z@\unskip\fi%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}%
+ \DeclareTextCommand{\it@ocap}{OT1}{%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#3\ignorespaces}}%
+ \DeclareTextCommand{\it@ccap}{OT1}{\ifdim\lastskip>\z@\unskip\fi%
+ {\fontencoding{#1}\fontfamily{#2}\selectfont\char#4}}}
+% \end{macrocode}
+% Then we set a boolean variable and test the default family;
+% if such family has a name that starts with the letters ``ae''
+% then we have no built in guillemets; of course if the AE font family is chosen
+% after the \babel\ package is loaded, the test does not perform as required.
+% \begin{macrocode}
+\def\get@ae#1#2#3!{\def\bbl@ae{#1#2}}%
+\def\@ifT@one@noCap{\expandafter\get@ae\f@family!%
+\def\bbl@temp{ae}\ifx\bbl@ae\bbl@temp\expandafter\@firstoftwo\else
+ \expandafter\@secondoftwo\fi}%
+% \end{macrocode}
+% We set another couple of boolean variables for testing the existence of the
+% CBgreek or the Cyrillic fonts
+% \begin{macrocode}
+\newif\if@CBgreekEncKnown
+\IfFileExists{lgrcmr.fd}%
+ {\@CBgreekEncKnowntrue}{\@CBgreekEncKnownfalse}
+\newif\if@CyrEncKnown
+\IfFileExists{ot2cmr.fd}%
+ {\@CyrEncKnowntrue}{\@CyrEncKnownfalse}%
+% \end{macrocode}
+% \begin {macro}{\CBgreekCaporali}
+% \begin {macro}{\CyrillicCaporali}
+% \begin {macro}{\T@unoCaporali}
+% Next we define the macros |\CBgreekCaporali|, |\T@unoCaporali|,
+% and |\CyrillicCaporali|;
+% with the latter one we test the loaded class, and if it's \texttt{slides}
+% nothing gets done. In any case each one of these declarations, if used, must be specified
+% in the preamble.
+% \begin{macrocode}
+\def\CBgreekCaporali{\@ifclassloaded{slides}{%
+ \IfFileExists{lgrlcmss.fd}{\DeclareFontEncoding{LGR}{}{}%
+ \DeclareRobustCommand*{\it@ccap}%
+ {\ifdim\lastskip>\z@\unskip\fi
+ {\fontencoding{LGR}\selectfont))}}%
+ \DeclareRobustCommand*{\it@ocap}%
+ {{\fontencoding{LGR}\selectfont((}\ignorespaces}}%
+ {\LtxSymbCaporali}}%
+ {\DeclareFontEncoding{LGR}{}{}%
+ \DeclareRobustCommand*{\it@ccap}%
+ {\ifdim\lastskip>\z@\unskip
+ \fi{\fontencoding{LGR}\selectfont))}}%
+ \DeclareRobustCommand*{\it@ocap}%
+ {{\fontencoding{LGR}\selectfont((}\ignorespaces}}%
+ }%
+\def\CyrillicCaporali{\@ifclassloaded{slides}{\relax}%
+ {\DeclareFontEncoding{OT2}{}{}%
+ \DeclareRobustCommand*{\it@ccap}%
+ {\ifdim\lastskip>\z@\unskip\fi
+ {\fontencoding{OT2}\selectfont\char62\relax}}%
+ \DeclareRobustCommand*{\it@ocap}%
+ {{\fontencoding{OT2}\selectfont\char60\relax}\ignorespaces}}}%
+\@onlypreamble{\CBgreekCaporali}\@onlypreamble{\CyrillicCaporali}%
+\def\T@unoCaporali{\DeclareRobustCommand*{\it@ocap}{<<\ignorespaces}%
+ \DeclareRobustCommand*{\it@ccap}{\ifdim\lastskip>\z@\unskip\fi>>}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% Now we can do some real setting; first we start testing the encoding;
+% if the encoding is T1 we test if the font family is the AE one; if so,
+% we further test for other possibilities
+% \begin{macrocode}
+\ifx\cf@encoding\bbl@t@one
+ \@ifT@one@noCap{%
+ \if@CBgreekEncKnown
+ \CBgreekCaporali
+ \else
+ \if@CyrEncKnown
+ \CyrilicCaporali
+ \else
+ \LtxSymbCaporali
+ \fi
+ \fi}%
+ {\T@unoCaporali}%
+% \end{macrocode}
+% But if the default encoding is not the T1 one, then the
+% substitutions must be performed.
+% \begin{macrocode}
+\else
+ \if@CBgreekEncKnown
+ \CBgreekCaporali
+ \else
+ \if@CyrEncKnown
+ \CyrilicCaporali
+ \else
+ \LtxSymbCaporali
+ \fi
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Finishing commands}
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{italian-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{italian}%
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/italian.ins b/Master/texmf-dist/source/generic/babel/italian.ins
new file mode 100644
index 00000000000..e7e51cbbd19
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/italian.ins
@@ -0,0 +1,155 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+%%
+%% Questo file serve per generare dal file italian.dtx il file
+%% italian.ldf mediante il programma LaTeX/docstrip che toglie
+%% praticamente tutti i commenti e ne rende il caricamento molto
+%% veloce. La documentazione puo' essere ottenuta passando a
+%% LaTeX2e il file sorgente italian.dtx
+%%
+\def\filedate{2001/01/19}
+\def\batchfile{italian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{italian.ldf}{\from{italian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/latin.dtx b/Master/texmf-dist/source/generic/babel/latin.dtx
new file mode 100644
index 00000000000..c3b3a599990
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/latin.dtx
@@ -0,0 +1,623 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{434}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{latin.dtx}
+%</dtx>
+%<code>\ProvidesFile{latin.ldf}
+%\fi
+%\ProvidesFile{latin.dtx}%
+ [2005/03/30 v2.0f Latin support from the babel system]
+%\iffalse
+%% File `latin.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams babel at braams.cistron.nl
+%% Claudio Beccari beccari at polito.it
+%
+% This file is part of the babel system, it provides the source
+% code for the Latin language definition file.
+% The original version of this file was written by
+% Claudio Beccari, (beccari@polito.it) and includes contributions
+% by Krzysztof Konrad \.Zelechowski, (\texttt{kkz@alfa.mimuw.edu.pl}).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\providecommand*\pkg[1]{\textsf{#1}}
+\begin{document}
+ \DocInput{latin.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{latin.dtx}
+%
+% \changes{latin-0.99}{1999/12/06}{First version, from italian.dtx (CB)}
+% \changes{latin-0.99}{1999/12/06}{Added shortcuts for breve, macron,
+% and etymological hyphenation (CB)}
+% \changes{latin-1.2}{2000/01/31}{Added suggestions from Krzysztof
+% Konrad \.Zelechowski (CB)}
+% \changes{latin-2.0}{2000/02/10}{Completely new etymological
+% hyphenation (CB)}
+% \changes{latin-2.0a}{2000/10/15}{Revised by JB}
+% \changes{latin-2.0b}{2000/12/13}{Simplified shortcuts for
+% etymological hyphenation; modified breve and macro shortcuts;
+% language attribute medieval declared}
+% \changes{latin-2.0d}{2001/06/04}{Restored caret and equals sign
+% category codes before exiting}
+% \changes{latin-2.0e}{2003/04/11}{Introduced the language attribute
+% `withprosodicmarks'; modified use of breve and macron shortcuts
+% in order to avoid possible conflicts with other packages}
+%
+% \section{The Latin language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author is Claudio Beccari with
+% contributions by Krzysztof Konrad \.Zelechowski,
+% (\texttt{kkz@alfa.mimuw.edu.pl})} defines all the
+% language-specific macros for the Latin language both in modern
+% and medieval spelling.
+%
+% For this language two ``styles'' of typesetting are implemented:
+% ``regular'' or modern-spelling Latin, and medieval Latin.
+% The medieval Latin specific commands can be activated by means of
+% the language attribute |medieval|; the medieval spelling differs
+% from the modern one by the systematic use of the lower case `u'
+% also where in modern spelling the letter `v' is used; when
+% typesetting with capital letters, on the opposite, the letter 'V'
+% is used also in place of 'U'.
+% Medieval spelling also includes the ligatures |\ae| (\ae), |\oe|
+% (\oe), |\AE| (\AE), and |\OE| (\OE) that are not used in modern
+% spelling, nor were used in the classical times.
+%
+% Furthermore a third typesetting style |withprosodicmarks| is
+% defined in order to use special shortcuts for inserting breves
+% and macrons when typesetting grammars, dictionaries, teaching
+% texts, and the like, where prosodic marks are important for the
+% complete information on the words or the verses. The shortcuts,
+% listed in table~\ref{t:lashrtct} and described in
+% section~\ref{s:shrtcts}, may interfere with other packages;
+% therefore by default this third style is off and no interference
+% is introduced. If this third style is used and interference is
+% experienced, there are special commands for turning on and off
+% the specific short hand commands of this style.
+%
+% For what concerns \textsf{babel} and typesetting with \LaTeX, the
+% differences between the two styles of spelling reveal themselves
+% in the strings used to name for example the ``Preface'' that
+% becomes ``Praefatio'' or ``Pr\ae fatio'' respectively.
+% Hyphenation rules are also different, but the hyphenation pattern
+% file \file{lahyph.tex} takes care of both versions of the
+% language. Needless to say that such patterns must be loaded in
+% the \LaTeX\ format by by running |initex| (or whatever the name
+% of the initializer) on |latex.ltx|.
+%
+% The name strings for chapters, figures, tables, etcetera, are
+% suggested by prof. Raffaella Tabacco, a classicist of the
+% University of Turin, Italy, to whom we address our warmest
+% thanks. The names suggested by Krzysztof Konrad \.Zelechowski,
+% when different, are used as the names for the medieval variety,
+% since he made a word and spelling choice more suited for this
+% variety.
+%
+% For this language some shortcuts are defined according to
+% table~\ref{t:lashrtct}; all of them are supposed to work with
+% both spelling styles, except where the opposite is explicitly
+% stated.
+% \begin{table}[htb]\centering
+% \begin{tabular}{cp{80mm}}
+% |^i| & inserts the breve accent as \u{\i}; valid also for the
+% other lowercase vowels, but it does not operate on the
+% medieval ligatures \ae\ and \oe.\\
+% |=a| & inserts the macron accent as \=a; valid also for the
+% other lowercase vowels, but it does not operate on the
+% medieval ligatures \ae\ and \oe.\\
+% |"| & inserts a compound word mark where hyphenation is legal;
+% the next character must not be a medieval ligature \ae\
+% or \oe, nor an accented letter (foreign names).\\
+% \texttt{\string"\string|}
+% & same as above, but operates also when the next character
+% is a medieval ligature or an accented letter.
+% \end{tabular}
+% \caption[]{Shortcuts defined for the Latin language. The
+% characters \texttt{\string^} and \texttt{\string=} are
+% active only when the language attribute
+% \texttt{withprosodicmarks} has been declared,
+% otherwise they are disabled; see
+% section~\ref{s:shrtcts} for more details.}%
+% \label{t:lashrtct}
+% \end{table}
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{latin}{captionslatin}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{latin} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@latin| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@latin\@undefined
+ \@nopatterns{Latin}
+ \adddialect\l@latin0\fi
+% \end{macrocode}
+%
+%
+% Now we declare the |medieval| language attribute.
+% \begin{macrocode}
+\bbl@declare@ttribute{latin}{medieval}{%
+ \addto\captionslatin{\def\prefacename{Pr{\ae}fatio}}%
+ \def\november{Nouembris}%
+ \expandafter\addto\expandafter\extraslatin
+ \expandafter{\extrasmedievallatin}%
+ }
+% \end{macrocode}
+%
+% The third typesetting style |withprosodicmarks| is defined here
+% \begin{macrocode}
+\bbl@declare@ttribute{latin}{withprosodicmarks}{%
+ \expandafter\addto\expandafter\extraslatin
+ \expandafter{\extraswithprosodicmarks}%
+ }
+% \end{macrocode}
+% It must be remembered that the |medieval| and the |withprosodicmarks|
+% styles may be used together.
+%
+% The next step consists of defining commands to switch to (and
+% from) the Latin language\footnote{Most of these names were
+% kindly suggested by Raffaella Tabacco.}.
+%
+% \begin{macro}{\captionslatin}
+% The macro |\captionslatin| defines all strings used
+% in the four standard document classes provided with \LaTeX.
+% \begin{macrocode}
+\@namedef{captionslatin}{%
+ \def\prefacename{Praefatio}%
+ \def\refname{Conspectus librorum}%
+ \def\abstractname{Summarium}%
+ \def\bibname{Conspectus librorum}%
+ \def\chaptername{Caput}%
+ \def\appendixname{Additamentum}%
+ \def\contentsname{Index}%
+ \def\listfigurename{Conspectus descriptionum}%
+ \def\listtablename{Conspectus tabularum}%
+ \def\indexname{Index rerum notabilium}%
+ \def\figurename{Descriptio}%
+ \def\tablename{Tabula}%
+ \def\partname{Pars}%
+ \def\enclname{Adduntur}% Or " Additur" ? Or simply Add.?
+ \def\ccname{Exemplar}% Use the recipient's dative
+ \def\headtoname{\ignorespaces}% Use the recipient's dative
+ \def\pagename{Charta}%
+ \def\seename{cfr.}%
+ \def\alsoname{cfr.}% R.Tabacco never saw "cfr. atque" or similar forms
+ \def\proofname{Demonstratio}%
+ \def\glossaryname{Glossarium}%
+ }
+% \end{macrocode}
+% \end{macro}
+% In the above definitions there are some points that might change
+% in the future or that require a minimum of attention from the
+% typesetter.
+% \begin{enumerate}
+% \item the \cs{enclname} is translated by a passive verb, that
+% literally means ``(they) are being added''; if just one
+% enclosure is joined to the document, the plural passive is not
+% suited any more; nevertheless a generic plural passive might be
+% incorrect but suited for most circumstances. On the opposite
+% ``Additur'', the corresponding singular passive, might be more
+% correct with one enclosure and less suited in general: what
+% about the abbreviation ``Add.'' that works in both cases, but
+% certainly is less elegant?
+% \item The \cs{headtoname} is empty and gobbles the possible
+% following space; in practice the typesetter should use the
+% dative of the recipient's name; since nowadays not all such
+% names can be translated into Latin, they might result
+% indeclinable. The clever use of an appellative by the
+% typesetter such as ``Domino'' or ``Dominae'' might solve the
+% problem, but the header might get too impressive. The typesetter
+% must make a decision on his own.
+% \item The same holds true for the copy recipient's name in the
+% ``Cc'' field of \cs{ccname}.
+% \end{enumerate}
+%
+% \begin{macro}{\datelatin}
+% The macro |\datelatin| redefines the command |\today| to produce
+% Latin dates; the choice of faked small caps Latin numerals is
+% arbitrary and may be changed in the future. For medieval latin
+% the spelling of `Novembris' should be \textit{Nouembris}. This is
+% taken care of by using a control sequence which can be redefined
+% when the attribute `medieval' is selected.
+% \changes{latin-2.0f}{2005/03/30}{Added a comment character to
+% prevent unwanted space}
+% \begin{macrocode}
+\def\datelatin{%
+ \def\november{Novembris}%
+ \def\today{%
+ {\check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont
+ \uppercase\expandafter{\romannumeral\day}}\nobreakspace
+ \ifcase\month\or
+ Ianuarii\or Februarii\or Martii\or Aprilis\or Maii\or Iunii\or
+ Iulii\or Augusti\or Septembris\or Octobris\or \november\or
+ Decembris\fi
+ \space{\uppercase\expandafter{\romannumeral\year}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\romandate}
+% Thomas Martin Widmann (\texttt{viralbus@daimi.au.dk}) developed a
+% macro originally named |\latindate| (but to be renamed
+% |\romandate| so as not to conflict with the standard \babel\
+% conventions) that should compute and translate the current date
+% into a date \textit{ab urbe condita} with days numbered according
+% to the kalendae and idus; for the moment this is a placeholder
+% for Thomas' macro, waiting for a self standing one that keeps
+% local all the intermediate data, counters, etc. If he succeeds,
+% here is the place to add his macro.
+% \end{macro}
+%
+% \begin{macro}{\latinhyphenmins}
+% The Latin hyphenation patterns can be used with both
+% |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{latin-2.0a}{2000/10/15}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extraslatin}
+% \begin{macro}{\noextraslatin}
+% For this language the |\clubpenalty|, |\widowpenalty| are set to
+% rather high values and |\finalhyphendemerits| is set to such a
+% high value that hyphenation is prohibited between the last two
+% lines of a paragraph.
+% \begin{macrocode}
+\addto\extraslatin{%
+ \babel@savevariable\clubpenalty
+ \babel@savevariable\widowpenalty
+ \clubpenalty3000\widowpenalty3000}
+% \end{macrocode}
+% Never ever break a word between the last two lines of a paragraph
+% in latin texts.
+% \begin{macrocode}
+\addto\extraslatin{%
+ \babel@savevariable\finalhyphendemerits
+ \finalhyphendemerits50000000}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% With medieval Latin we need the suitable correspondence between
+% upper case V and lower case u, since in that spelling there is
+% only one sign, and the u shape is the (uncial) version of the
+% capital V. Everything else is identical with Latin.
+% \begin{macrocode}
+\addto\extrasmedievallatin{%
+\babel@savevariable{\lccode`\V}%
+\babel@savevariable{\uccode`\u}%
+\lccode`\V=`\u \uccode`\u=`\V}
+% \end{macrocode}
+%
+% \begin{macro}{\SetLatinLigatures}
+% We need also the lccodes for \ae\ and \oe; since they occupy
+% different positions in the OT1 \TeX-fontencoding compared to the
+% T1 one, we must save the lc- and the uccodes for both encodings,
+% but we specify the new lc- and uccodes separately as it appears
+% natural not to change encoding while typesetting the same
+% language. The encoding is assumed to be set before starting to
+% use the Latin language, so that if Latin is the default language,
+% the font encoding must be chosen before requiring the \pkg{babel}
+% package with the |latin| option, in any case before any
+% |\selectlanguage| or |\foreignlanguage| command.
+%
+% All this fuss is made in order to allow the use of the medieval
+% ligatures \ae\ and \oe\ while typesetting with the medieval
+% spelling; I have my doubts that the medieval spelling should be
+% used at all in modern books, reports, and the like, as the uncial
+% `u' shape of the lower case `v' and the above ligatures were
+% used until the middle of the XVII century. Since my opinion (CB)
+% may be wrong, I managed to set up the instruments and it is up
+% to the typesetter to use them or not.
+%
+% \begin{macrocode}
+\addto\extrasmedievallatin{%
+ \babel@savevariable{\lccode`\^^e6}% T1 \ae
+ \babel@savevariable{\uccode`\^^e6}% T1 \ae
+ \babel@savevariable{\lccode`\^^c6}% T1 \AE
+ \babel@savevariable{\lccode`\^^f7}% T1 \oe
+ \babel@savevariable{\uccode`\^^f7}% T1 \OE
+ \babel@savevariable{\lccode`\^^d7}% T1 \OE
+ \babel@savevariable{\lccode`\^^1a}% OT1 \ae
+ \babel@savevariable{\uccode`\^^1a}% OT1 \ae
+ \babel@savevariable{\lccode`\^^1d}% OT1 \AE
+ \babel@savevariable{\lccode`\^^1b}% OT1 \oe
+ \babel@savevariable{\uccode`\^^1b}% OT1 \OE
+ \babel@savevariable{\lccode`\^^1e}% OT1 \OE
+ \SetLatinLigatures}
+\providecommand\SetLatinLigatures{%
+ \def\@tempA{T1}\ifx\@tempA\f@encoding
+ \catcode`\^^e6=11 \lccode`\^^e6=`\^^e6 \uccode`\^^e6=`\^^c6 % \ae
+ \catcode`\^^c6=11 \lccode`\^^c6=`\^^e6 % \AE
+ \catcode`\^^f7=11 \lccode`\^^f7=`\^^f7 \uccode`\^^f7=`\^^d7 % \oe
+ \catcode`\^^d7=11 \lccode`\^^d7=`\^^f7 % \OE
+ \else
+ \catcode`\^^1a=11 \lccode`\^^1a=`\^^1a \uccode`\^^1a=`\^^1d % \ae
+ \catcode`\^^1d=11 \lccode`\^^1d=`\^^1a % \AE (^^])
+ \catcode`\^^1b=11 \lccode`\^^1b=`\^^1b \uccode`\^^1b=`\^^1e % \oe
+ \catcode`\^^1e=11 \lccode`\^^1e=`\^^1b % \OE (^^^)
+ \fi
+ \let\@tempA\@undefined
+ }
+% \end{macrocode}
+% With the above definitions we are sure that |\MakeUppercase|
+% works properly and |\MakeUppercase{C{\ae}sar}| correctly `yields
+% `C{\AE}SAR''; correspondingly |\MakeUppercase{Heluetia}|
+% correctly yields ``HELVETIA''.
+% \end{macro}
+%
+% \section{Latin shortcuts}\label{s:shrtcts}
+% For writing dictionaries or didactic texts we defined a third
+% language attribute, or a third typesetting style, where a couple
+% of other active characters are defined: |^| for marking a vowel
+% with the breve sign, and |=| for marking a vowel with the macro
+% sign. Please take notice that neither the OT1 font encoding, nor
+% the T1 one for most vowels, contain directly the marked vowels,
+% therefore hyphenation of words containing these ``accents'' may
+% become problematic; for this reason the above active characters
+% not only introduce the required accent, but also the necessary
+% code for allowing hyphenation in the rest of the word.
+%
+% It must be remarked that the active characters |^| and |=| may
+% have other meanings in other contexts. For example the equals
+% sign is used by the graphic extensions for specifying keyword
+% options for handling the graphic elements to be included in the
+% document. At the same time, as mentioned in the previous
+% paragraph, diacritical marking in Latin is used only for
+% typesetting certain kind of documents, such as grammars and
+% dictionaries. It is reasonable that the breve and macron active
+% characters may be switched on and off at will, and in particular
+% that they are off by default if the attribute |withprosodicmarks|
+% has not been set.
+%
+% \begin{macro}{\ProsodicMarksOn}
+% \begin{macro}{\ProsodicMarksOff}
+% We begin by adding to the normal typesetting style the
+% definitions of the new commands |\ProsodicMarksOn| and
+% |\ProsodicMarksOff| that should produce error messages when the
+% third style is not declared:
+% \begin{macrocode}
+\addto\extraslatin{\def\ProsodicMarksOn{%
+\GenericError{(latin)\@spaces\@spaces\@spaces\@spaces}%
+ {Latin language error: \string\ProsodicMarksOn\space
+ is defined by setting the\MessageBreak
+ language attribute to `withprosodicmarks'\MessageBreak
+ If you continue you are likely to encounter\MessageBreak
+ fatal errors that I can't recover}%
+ {See the Latin language description in the babel
+ documentation for explanation}{\@ehd}}}
+\addto\extraslatin{\let\ProsodicMarksOff\relax}
+% \end{macrocode}
+%
+% Then we temporarily set the caret and the equals sign to active
+% characters so that they can receive their definitions:
+% \begin{macrocode}
+\catcode`\= \active
+\catcode`\^ \active
+% \end{macrocode}
+% and we add the necessary declarations to the macros that are
+% being activated when the Latin language and its typesetting
+% styles are declared:
+% \begin{macrocode}
+\addto\extraslatin{\languageshorthands{latin}}%
+\addto\extraswithprosodicmarks{\bbl@activate{^}}%
+\addto\extraswithprosodicmarks{\bbl@activate{=}}%
+\addto\noextraswithprosodicmarks{\bbl@deactivate{^}}%
+\addto\noextraswithprosodicmarks{\bbl@deactivate{=}}%
+\addto\extraswithprosodicmarks{\ProsodicMarks}
+% \end{macrocode}
+%
+% \begin{macro}{\ProsodicMarks}
+% Next we define the defining macro for the active characters
+% \begin{macrocode}
+\def\ProsodicMarks{%
+\def\ProsodicMarksOn{\catcode`\^ 13\catcode`\= 13\relax}%
+\def\ProsodicMarksOff{\catcode`\^ 7\catcode`\= 12\relax}%
+% \end{macrocode}
+% Notice that with the above redefinitions of the commands
+% |\ProsodicMarksOn| and |\ProsodicMarksOff|, the operation of the
+% newly defined shortcuts may be switched on and off at will, so
+% that even if a picture has to be inserted in the document by
+% means of the commands and keyword options of the |graphicx|
+% package, it suffices to switch them off before invoking the
+% picture including command, and switched on again afterwards; or,
+% even better, since the picture very likely is being inserted
+% within a |figure| environment, it suffices the switch them off
+% within the environment, being conscious that their deactivation
+% remains local to the environment.
+% \begin{macrocode}
+\initiate@active@char{^}%
+\initiate@active@char{=}%
+\declare@shorthand{latin}{^a}{%
+ \textormath{\u{a}\allowhyphens}{\hat{a}}}%
+\declare@shorthand{latin}{^e}{%
+ \textormath{\u{e}\allowhyphens}{\hat{e}}}%
+\declare@shorthand{latin}{^i}{%
+ \textormath{\u{\i}\allowhyphens}{\hat{\imath}}}%
+\declare@shorthand{latin}{^o}{%
+ \textormath{\u{o}\allowhyphens}{\hat{o}}}%
+\declare@shorthand{latin}{^u}{%
+ \textormath{\u{u}\allowhyphens}{\hat{u}}}%
+\declare@shorthand{latin}{=a}{%
+ \textormath{\={a}\allowhyphens}{\bar{a}}}%
+\declare@shorthand{latin}{=e}{%
+ \textormath{\={e}\allowhyphens}{\bar{e}}}%
+\declare@shorthand{latin}{=i}{%
+ \textormath{\={\i}\allowhyphens}{\bar{\imath}}}%
+\declare@shorthand{latin}{=o}{%
+ \textormath{\={o}\allowhyphens}{\bar{o}}}%
+\declare@shorthand{latin}{=u}{%
+ \textormath{\={u}\allowhyphens}{\bar{u}}}%
+}
+% \end{macrocode}
+% Notice that the short hand definitions are given only for lower
+% case letters; it would not be difficult to extend the set of
+% definitions to upper case letters, but it appears of very little
+% use in view of the kind of documents where prosodic marks are
+% supposed to be used. Nevertheless in those rare cases when it's
+% required to set some uppercase letters with their prosodic
+% marks, it is always possible to use the standard \LaTeX\ commands
+% such as |\u{I}| for typesetting \u{I}, or |\={A}| for
+% typesetting~\=A.
+%
+% Finally we restore the caret and equals sign initial default
+% category codes.
+% \begin{macrocode}
+\catcode`\= 12\relax
+\catcode`\^ 7\relax
+% \end{macrocode}
+% \end{macro}
+%
+% It must be understood that by using the above prosodic marks,
+% line breaking is somewhat impeached; since such prosodic marks
+% are used almost exclusively in dictionaries, grammars, and poems
+% (only in school textbooks), this shouldn't be of any importance
+% for what concerns the quality of typesetting.
+% \end{macro}
+% \end{macro}
+%
+% \section{Etymological hyphenation}
+% In order to deal in a clean way with prefixes and compound words
+% to be divided etymologically, the active character |"| is given
+% a special definition so as to behave as a discretionary break
+% with hyphenation allowed after it.
+% Most of the code for dealing with the active |"| is already
+% contained in the core of \babel, but we are going to use it as a
+% single character shorthand for Latin.
+% \begin{macrocode}
+\initiate@active@char{"}%
+\addto\extraslatin{\bbl@activate{"}%
+}
+% \end{macrocode}
+%
+% A temporary macro is defined so as to take different actions in
+% math mode and text mode: specifically in the former case the
+% macro inserts a double quote as it should in math mode, otherwise
+% another delayed macro comes into action.
+% \begin{macrocode}
+\declare@shorthand{latin}{"}{%
+ \ifmmode
+ \def\lt@@next{''}%
+ \else
+ \def\lt@@next{\futurelet\lt@temp\lt@cwm}%
+ \fi
+ \lt@@next
+}%
+% \end{macrocode}
+% In text mode the \cs{lt@next} control sequence is such that upon
+% its execution a temporary variable \cs{lt@temp} is made
+% equivalent to the next token in the input list without actually
+% removing it. Such temporary token is then tested by the macro
+% \cs{lt@cwm} and if it is found to be a letter token, then it
+% introduces a compound word separator control sequence
+% \cs{lt@allowhyphens} whose expansion introduces a discretionary
+% hyphen and an unbreakable space; in case the token is not a
+% letter, the token is tested again to find if it is the character
+% \texttt{\string|}, in which case it is gobbled and a
+% discretionary break is introduced.
+% \begin{macrocode}
+\def\lt@allowhyphens{\nobreak\discretionary{-}{}{}\hskip\z@skip}
+\newcommand*{\lt@cwm}{\let\lt@n@xt\relax
+ \ifcat\noexpand\lt@temp a%
+ \let\lt@n@xt\lt@allowhyphens
+ \else
+ \if\noexpand\lt@temp\string|%
+ \def\lt@n@xt{\lt@allowhyphens\@gobble}%
+ \fi
+ \fi
+ \lt@n@xt}%
+% \end{macrocode}
+%
+% Attention: the category code comparison does not work if the
+% temporary control sequence \cs{lt@temp} has been let equal to an
+% implicit character, such as |\ae|; therefore this etymological
+% hyphenation facility does not work with medieval Latin spelling
+% when |"| immediately precedes a ligature. in order to overcome
+% this drawback the shorthand \verb!"|! may be used in such cases;
+% it behaves exactly as |"|, but it does not test the implicit
+% character control sequence. An input such as
+% \verb!super"|{\ae}quitas!\footnote{This word does not exist in
+% ``regular'' Latin, and it is used just as an example.}
+% gets hyphenated as \texttt{su-per-{\ae}qui-tas} instead of
+% \texttt{su-pe-r\ae-qui-tas}.
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{latin}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/latin.ins b/Master/texmf-dist/source/generic/babel/latin.ins
new file mode 100644
index 00000000000..88bfe93d36d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/latin.ins
@@ -0,0 +1,150 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{latin.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+
+Copyright 1999-2001 Claudio Beccari All rights reserved.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{latin.ldf}{\from{latin.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/lsorbian.dtx b/Master/texmf-dist/source/generic/babel/lsorbian.dtx
new file mode 100644
index 00000000000..9f528f8aa9c
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/lsorbian.dtx
@@ -0,0 +1,239 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{129}
+% \iffalse
+%
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{lsorbian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{lsorbian}
+%\fi
+%\ProvidesFile{lsorbian.dtx}
+ [2005/03/31 v1.0f Lower Sorbian support from the babel system]
+%\iffalse
+%% File `lsorbian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Lower Sorbian Language Definition File
+%% Copyright (C) 1994 - 2005
+%% by Eduard Werner
+% Werner, Eduard",
+% Serbski institut z. t.,
+% Dw\'orni\v{s}\'cowa 6
+% 02625 Budy\v{s}in/Bautzen
+% Germany",
+% (??)3591 497223",
+% edi at kaihh.hanse.de",
+%
+%% Please report errors to: Eduard Werner edi at kaihh.hanse.de
+%%
+% This file is part of the babel system, it provides the source
+% code for the Lower Sorbian definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{lsorbian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{lsorbian.dtx}
+%
+% \changes{lsorbian-0.1}{1994/10/10}{First version}
+% \changes{lsorbian-1.0d}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Lower Sorbian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. It was written by Eduard Werner
+% (\texttt{edi@kaihh.hanse.de}).} It defines all the
+% language-specific macros for Lower Sorbian.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{lsorbian-1.0d}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{lsorbian}\captionslsorbian
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{lsorbian} will be an `unknown' languagein which
+% case we have to make it known. So we check for the existence of
+% |\l@lsorbian| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@lsorbian\@undefined
+ \@nopatterns{Lsorbian}
+ \adddialect\l@lsorbian\l@usorbian\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Lower Sorbian language.
+%
+% \begin{macro}{\captionslsorbian}
+% The macro |\captionslsorbian| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{lsorbian-1.0b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{lsorbian-1.0f}{2000/09/22}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionslsorbian{%
+ \def\prefacename{Zawod}%
+ \def\refname{Referency}%
+ \def\abstractname{Abstrakt}%
+ \def\bibname{Literatura}%
+ \def\chaptername{Kapitl}%
+ \def\appendixname{Dodawki}%
+ \def\contentsname{Wop\'simje\'se}%
+ \def\listfigurename{Zapis wobrazow}%
+ \def\listtablename{Zapis tabulkow}%
+ \def\indexname{Indeks}%
+ \def\figurename{Wobraz}%
+ \def\tablename{Tabulka}%
+ \def\partname{\'Z\v el}%
+ \def\enclname{P\'si\l oga}%
+ \def\ccname{CC}%
+ \def\headtoname{Komu}%
+ \def\pagename{Strona}%
+ \def\seename{gl.}%
+ \def\alsoname{gl.~teke}%
+ \def\proofname{Proof}% <-- needs translation
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newdatelsorbian}
+% The macro |\newdatelsorbian| redefines the command |\today| to
+% produce Lower Sorbian dates.
+% \changes{lsorbian-1.0e}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{lsorbian-1.0e}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\newdatelsorbian{%
+ \def\today{\number\day.~\ifcase\month\or
+ januara\or februara\or m\v erca\or apryla\or maja\or
+ junija\or julija\or awgusta\or septembra\or oktobra\or
+ nowembra\or decembra\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\olddatelsorbian}
+% The macro |\olddatelsorbian| redefines the command |\today| to
+% produce old-style Lower Sorbian dates.
+% \begin{macrocode}
+\def\olddatelsorbian{%
+ \def\today{\number\day.~\ifcase\month\or
+ wjelikego ro\v zka\or
+ ma\l ego ro\v zka\or
+ nal\v etnika\or
+ jat\v sownika\or
+ ro\v zownika\or
+ sma\v znika\or
+ pra\v znika\or
+ \v znje\'nca\or
+ po\v znje\'nca\or
+ winowca\or
+ nazymnika\or
+ godownika\fi \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% The default will be the new-style dates.
+% \begin{macrocode}
+\let\datelsorbian\newdatelsorbian
+% \end{macrocode}
+%
+% \begin{macro}{\extraslsorbian}
+% \begin{macro}{\noextraslsorbian}
+% The macro |\extraslsorbian| will perform all the extra
+% definitions needed for the lsorbian language. The macro
+% |\noextraslsorbian| is used to cancel the actions of
+% |\extraslsorbian|. For the moment these macros are empty but
+% they are defined for compatibility with the other language
+% definition files.
+%
+% \begin{macrocode}
+\addto\extraslsorbian{}
+\addto\noextraslsorbian{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{lsorbian-1.0d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{lsorbian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/magyar.dtx b/Master/texmf-dist/source/generic/babel/magyar.dtx
new file mode 100644
index 00000000000..febd734ad76
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/magyar.dtx
@@ -0,0 +1,1411 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{1538}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{magyar.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{magyar}
+%\fi
+%\ProvidesFile{magyar.dtx}
+ [2005/03/30 v1.4j Magyar support from the babel system]
+%\iffalse
+%% File `magyar.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Magyar Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%% \'Arp\'ad B\'IR\'O
+%% J\'ozsef B\'ERCES
+%
+% Please report errors to: J.L. Braams babel braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Hungarian language definition file. A contribution
+% was made by Attila Koppanyi (attila@cernvm.cern.ch).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{magyar.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{magyar.dtx}
+%
+% \changes{magyar-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{magyar-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{magyar-1.1d}{1994/02/08}{Further spelling corrections}
+% \changes{magyar-1.1e}{1994/02/09}{Still more spelling corrections}
+% \changes{magyar-1.2}{1994/02/27}{Update for \LaTeXe}
+% \changes{magyar-1.3c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{magyar-1.3g}{1996/07/12}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{magyar-1.4a}{1998/06/04}{order inverting in
+% headings/titles/captions; definite article handling; active char
+% for special hyphenation}
+% \changes{magyar-1.4d}{2001/11/15}{Corrected checksum}
+% \changes{magyar-1.4j}{2004/11/17}{Added missing comment characters
+% in the redefinitions of \cs{ps@headings} to prevent spurious
+% spaces}
+%
+% \section{The Hungarian language}
+%
+% The file option \file{\filename} defines all the
+% language definition macros for the Hungarian language.
+%
+% The \babel{} support for the Hungarian language until file
+% version 1.3i was essentially changing the English document
+% elements to Hungarian ones, but because of the differences
+% between these too languages this was actually unusable (`Part I'
+% was transferred to `R\'esz I' which is not usable instead of `I.\
+% r\'esz'). To enhance the typesetting facilities for Hungarian
+% the following should be considered:
+% \begin{itemize}
+% \item In Hungarian documents there is a period after
+% the part, section, subsection \mbox{etc.} numbers.
+%
+% \item In the part, chapter, appendix name the number
+% (or letter) goes before the name, so `Part I' translates to
+% `I.\ r\'esz'.
+%
+% \item The same is true with captions
+% (`Table 2.1' goes to `2.1.\ t\'abl\'azat').
+%
+% \item There is a period after the caption name instead of a colon.
+% (`Table 2.1:' goes to `2.1.\ t\'abl\'azat.')
+%
+% \item There is a period at the end of the title in a run-in head
+% (when |afterskip<0| in |\@startsection|).
+%
+% \item Special hyphenation rules must be applied
+% for the so-called long double consonants (ccs, ssz,\dots).
+%
+% \item The opening quotation mark is like the German one
+% (the closing is the same as in English).
+%
+% \item In Hungarian figure, table, \mbox{etc.}
+% referencing a definite article is also incorporated.
+% The Hungarian definite articles behave like the English
+% indefinite ones (`a/an'). `a' is used for words beginning
+% with a consonant and `az' goes for a vowel.
+% Since some numbers begin with a vowel some others
+% with a consonant some commands should be provided for
+% automatic definite article generation.
+% \end{itemize}
+%
+% Until file version 1.3i\footnote{That file was
+% last revised on 1996/12/23 with a contribution by the next
+% authors: Attila Kopp\'anyi (\texttt{attila@cernvm.cern.ch}),
+% \'Arp\'ad B\'{\i}r\'o (\texttt{JZP1104@HUSZEG11.bitnet}),
+% Istv\'an Hamecz (\texttt{hami@ursus.bke.hu)} and
+% Dezs\H{o} Horv\'ath (\texttt{horvath@pisa.infn.it}).}
+% the special typesetting rules of the Hungarian language
+% mentioned above were not taken into consideration.
+% This version (\fileversion)\footnote{It was written by J\'ozsef
+% B\'erces (\texttt{jozsi@docs4.mht.bme.hu}) with some help from
+% Ferenc Wettl (\texttt{wettl@math.bme.hu}) and an idea from David
+% Carlisle (\texttt{david@dcarlisle.demon.co.uk}).}
+% enables \babel{} to typeset `good-looking' Hungarian texts.
+%
+% \DescribeMacro\ontoday
+% The |\ontoday| command works like |\today| but
+% produces a slightly different date format used in expressions such
+% as `on February 10th'.
+%
+% \DescribeMacro\Az
+% The commands |\Az#1| and |\az#1| write the correct
+% definite article for the argument and the argument itself
+% (separated with a |~|). The star-forms (|\Az*| and |\az*|)
+% produce the article only.
+%
+% \DescribeMacro\Azr
+% |\Azr#1| and |\azr#1| treat the argument as a label so expand
+% it then write the definite article for |\r@#1|, a non-breakable
+% space then the label expansion. The star-forms do not print
+% the label expansion. |\Azr(#1| and |\azr(#1| are used for
+% equation referencing with the syntax |\azr(|\textit{label}|)|.
+%
+% \DescribeMacro\Aref
+% There are two aliases |\Aref| and |\aref| for |\Azr| and |\azr|,
+% respectively. During the preparation of a document it is not
+% known in general, if the code `|a~\ref{|\textit{label}|}|' or the code
+% `|az~\ref{|\textit{label}|}|' is the grammatically correct one. Writing
+% `|\aref{|\textit{label}|}|' instead of the previous ones solves the
+% problem.
+%
+% \DescribeMacro\Azp
+% |\Azp#1| and |\azp#1| also treat the argument as a label but
+% use the label's page for definite article determination.
+% There are star-forms giving only the definite article without
+% the page number.
+%
+% \DescribeMacro\Apageref
+% There are aliases |\Apageref| and |\apageref| for |\Azp| and
+% |\azp|, respectively. The code |\apageref{|\textit{label}|}|
+% is equivalent either to |a~\pageref{|\textit{label}|}| or
+% to |az~\pageref{|\textit{label}|}|.
+%
+% \DescribeMacro\Azc
+% |\Azc| and |\azc| work like the |\cite| command but
+% (of course) they insert the definite article. There can be
+% several comma separated cite labels and in that case the
+% definite article is given for the first one.
+% They accept |\cite|'s optional argument.
+% There are star-forms giving the definite article only.
+%
+% \DescribeMacro\Acite
+% There are aliases |\Acite| and |\acite| for
+% |\Azc| and |\azc|, respectively.
+%
+% For this language the character |`| is made active.
+% Table~\ref{tab:hun-actives} shows the shortcuts.
+% The main reason for the activation of the |`| character
+% is to handle the special hyphenation of the long double
+% consonants.
+% \begin{table}
+% \begin{center}
+% \begin{tabular}{lp{45mm}p{47mm}}
+% shortcut & explanation & example \\
+% \hline
+% |``| & same as |\glqq| in \babel{}, or
+% |\quotedblbase| in T1
+% (opening quotation mark, like ,,)
+% & |``id\'ezet''|$\longrightarrow$,,id\'ezet'{}' \\
+% |`c|, |`C| & ccs is hyphenated as cs-cs
+% & |lo`ccsan|$\longrightarrow$locs-csan \\
+% |`d|, |`D| & ddz is hyphenated as dz-dz
+% & |e`ddz\"unk|$\longrightarrow$edz-dz\"unk \\
+% |`g|, |`G| & ggy is hyphenated as gy-gy
+% & |po`ggy\'asz|$\longrightarrow$pogy-gy\'asz \\
+% |`l|, |`L| & lly is hyphenated as ly-ly
+% & |Kod\'a`llyal|$\longrightarrow$Kod\'aly-lyal \\
+% |`n|, |`N| & nny is hyphenated as ny-ny
+% & |me`nnyei|$\longrightarrow$meny-nyei \\
+% |`s|, |`S| & ssz is hyphenated as sz-sz
+% & |vi`ssza|$\longrightarrow$visz-sza \\
+% |`t|, |`T| & tty is hyphenated as ty-ty
+% & |po`ttyan|$\longrightarrow$poty-tyan \\
+% |`z|, |`Z| & zzs is hyphenated as zs-zs
+% & |ri`zzsel|$\longrightarrow$rizs-zsel \\
+% \end{tabular}
+% \caption{The shortcuts defined in \file{magyar.ldf}}
+% \label{tab:hun-actives}
+% \end{center}
+% \end{table}
+%
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{magyar-1.3h}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{magyar}{caption\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{magyar} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@magyar| or |\l@hungarian| to see whether we have to do
+% something here.
+%
+% \changes{magyar-1.0b}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \changes{magyar-1.1}{1992/02/16}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{magyar-1.3c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \changes{magyar-1.4d}{2003/09/18}{The \cs{else} clause got outside
+% of the \cs{if} statement, breaking the Hungarian support}
+% \changes{magyar-1.4g}{2003/10/07}{Further change to make it work
+% when neither \cs{l@magyar} nor \cs{l@hugarian} are defined}
+% \begin{macrocode}
+\ifx\l@magyar\@undefined
+ \ifx\l@hungarian\@undefined
+ \@nopatterns{Magyar}
+ \adddialect\l@magyar0
+ \else
+ \let\l@magyar\l@hungarian
+ \fi
+\fi
+% \end{macrocode}
+% The statement above makes sure that |\l@magyar| is always
+% defined; if |\l@hungarian| is still undefined we make it equal to
+% |\l@magyar|.
+% \begin{macrocode}
+\ifx\l@hungarian\@undefined
+ \let\l@hungarian\l@magyar
+\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Hungarian language.
+%
+% \begin{macro}{\captionsmagyar}
+% The macro |\captionsmagyar| defines all strings used in the four
+% standard document classes provided with \LaTeX.
+% \changes{magyar-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{magyar-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{magyar-1.1c}{1994/01/05}{Added translations, fixed typos}
+% \changes{magyar-1.3e}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{magyar-1.3f}{1996/04/18}{translated Proof and replaced some
+% translations}
+% \changes{magyar-1.4a}{1998/06/04}{the initial letter of fejezet,
+% t\'abl\'azat, r\'esz, l\'asd changed to lowercase}
+% \begin{macrocode}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{El\H osz\'o}%
+% \end{macrocode}
+% For the list of references at the end of an article we have a
+% choice between two words, `Referenci\'ak' (a Hungarian version of
+% the English word) and `Hivatkoz\'asok'. The latter seems to
+% be in more widespread use.
+% \begin{macrocode}
+ \def\refname{Hivatkoz\'asok}%
+% \end{macrocode}
+% If you have a document with a summary instead of an abstract you
+% might want to replace the word `Kivonat' with
+% `\"Osszefoglal\'o'.
+% \begin{macrocode}
+ \def\abstractname{Kivonat}%
+% \end{macrocode}
+% The Hungarian version of `Bibliography' is `Bibliogr\'afia', but
+% a more natural word to use is `Irodalomjegyz\'ek'.
+% \begin{macrocode}
+ \def\bibname{Irodalomjegyz\'ek}%
+ \def\chaptername{fejezet}%
+ \def\appendixname{F\"uggel\'ek}%
+ \def\contentsname{Tartalomjegyz\'ek}%
+ \def\listfigurename{\'Abr\'ak jegyz\'eke}%
+ \def\listtablename{T\'abl\'azatok jegyz\'eke}%
+ \def\indexname{T\'argymutat\'o}%
+ \def\figurename{\'abra}%
+ \def\tablename{t\'abl\'azat}%
+ \def\partname{r\'esz}%
+ \def\enclname{Mell\'eklet}%
+ \def\ccname{K\"orlev\'el--c\'\i mzettek}%
+ \def\headtoname{C\'\i mzett}%
+ \def\pagename{oldal}%
+ \def\seename{l\'asd}%
+ \def\alsoname{l\'asd m\'eg}%
+% \end{macrocode}
+% Besides the Hungarian word for Proof, `Bizony\'\i t\'as' we can
+% also name Corollary (K\"ovetkezm\'eny), Theorem (T\'etel) and
+% Lemma (Lemma).
+% \changes{magyar-1.4b}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{magyar-1.4h}{2003/11/20}{Inserted translation for Glossary}
+% \begin{macrocode}
+ \def\proofname{Bizony\'\i t\'as}%
+ \def\glossaryname{Sz\'ojegyz\'ek}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datemagyar}
+% The macro |\datemagyar| redefines the command |\today| to produce
+% Hungarian dates.
+% \changes{magyar-1.1d}{1994/02/08}{Rewritten to produce the correct
+% date format}
+% \changes{magyar-1.4a}{1998/06/10}{Use \cs{number}\cs{day} instead of
+% \cs{ifcase} construct}
+% \begin{macrocode}
+\@namedef{date\CurrentOption}{%
+ \def\today{%
+ \number\year.\nobreakspace\ifcase\month\or
+ janu\'ar\or febru\'ar\or m\'arcius\or
+ \'aprilis\or m\'ajus\or j\'unius\or
+ j\'ulius\or augusztus\or szeptember\or
+ okt\'ober\or november\or december\fi
+ \space\number\day.}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ondatemagyar}
+% The macro |\ondatemagyar| produces Hungarian dates which have the
+% meaning `\emph{on this day}'. It does not redefine the command
+% |\today|.
+% \changes{magyar-1.1c}{1994/01/05}{The date number should not be
+% followed by a dot.}
+% \changes{magyar-1.1d}{1994/02/08}{Renamed from \cs{datemagyar};
+% nolonger redefines \cs{today}.}
+% \begin{macrocode}
+\@namedef{ondate\CurrentOption}{%
+ \number\year.\nobreakspace\ifcase\month\or
+ janu\'ar\or febru\'ar\or m\'arcius\or
+ \'aprilis\or m\'ajus\or j\'unius\or
+ j\'ulius\or augusztus\or szeptember\or
+ okt\'ober\or november\or december\fi
+ \space\ifcase\day\or
+ 1-j\'en\or 2-\'an\or 3-\'an\or 4-\'en\or 5-\'en\or
+ 6-\'an\or 7-\'en\or 8-\'an\or 9-\'en\or 10-\'en\or
+ 11-\'en\or 12-\'en\or 13-\'an\or 14-\'en\or 15-\'en\or
+ 16-\'an\or 17-\'en\or 18-\'an\or 19-\'en\or 20-\'an\or
+ 21-\'en\or 22-\'en\or 23-\'an\or 24-\'en\or 25-\'en\or
+ 26-\'an\or 27-\'en\or 28-\'an\or 29-\'en\or 30-\'an\or
+ 31-\'en\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasmagyar}
+% \begin{macro}{\noextrasmagyar}
+% The macro |\extrasmagyar| will perform all the extra definitions
+% needed for the Hungarian language. The macro |\noextrasmagyar| is
+% used to cancel the actions of |\extrasmagyar|.
+%
+% \begin{macrocode}
+ \@namedef{extras\CurrentOption}{%
+ \expandafter\let\expandafter\ontoday
+ \csname ondate\CurrentOption\endcsname}
+\@namedef{noextras\CurrentOption}{\let\ontoday\@undefined}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Now we redefine some commands included into \file{latex.ltx}.
+% The original form of a command is always saved with
+% |\babel@save| and the changes are added to |\extrasmagyar|.
+% This ensures that the Hungarian version of a macro is alive
+% \emph{only} if the Hungarian language is active.
+%
+% \begin{macro}{\fnum@figure}
+% \begin{macro}{\fnum@table}
+% In figure and table captions the order of the figure/table
+% number and |\figurename|\hspace{0pt}/|\tablename| must be changed.
+% To achieve this |\fnum@figure| and |\fnum@table| are
+% redefined and added to |\extrasmagyar|.
+% \changes{magyar-1.4i}{2004/02/20}{Use \cs{nobreakspace} instead of
+% tilde}
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\fnum@figure
+ \def\fnum@figure{\thefigure.\nobreakspace\figurename}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\fnum@table
+ \def\fnum@table{\thetable.\nobreakspace\tablename}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@makecaption}
+% The colon in a figure/table caption must be replaced by a dot
+% by redefining |\@makecaption|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@makecaption
+ \def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1. #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ {#1. #2\csname par\endcsname}
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@caption}
+% There should be a dot after the figure/table number in lof/lot,
+% so |\@caption| is redefined.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@caption
+ \long\def\@caption#1[#2]#3{%
+ \csname par\endcsname
+ \addcontentsline{\csname ext@#1\endcsname}{#1}%
+ {\protect\numberline{\csname the#1\endcsname.}{\ignorespaces #2}}%
+ \begingroup
+ \@parboxrestore
+ \if@minipage
+ \@setminipage
+ \fi
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}%
+ {\ignorespaces #3}\csname par\endcsname
+ \endgroup}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@seccntformat}
+% In order to have a dot after the section number
+% |\@seccntformat| is redefined.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@seccntformat
+ \def\@seccntformat#1{\csname the#1\endcsname.\quad}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect}
+% Alas, |\@sect| must also be redefined to have that dot in toc too.
+% On the other hand, we include a dot after a run-in head.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@sect
+ \def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname.}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8.}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname.}%
+ \fi
+ #7}}%
+ \fi
+ \@xsect{#5}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ssect}
+% In order to have that dot after a run-in head when the star form of the
+% sectioning commands is used, we have to redefine |\@ssect|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@ssect
+ \def\@ssect#1#2#3#4#5{%
+ \@tempskipa #3\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #4{%
+ \@hangfrom{\hskip #1}%
+ \interlinepenalty \@M #5\@@par}%
+ \endgroup
+ \else
+ \def\@svsechd{#4{\hskip #1\relax #5.}}%
+ \fi
+ \@xsect{#3}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@begintheorem}
+% \begin{macro}{\@opargbegintheorem}
+% Order changing and dot insertion in theorem by redefining
+% |\@begintheorem| and |\@opargbegintheorem|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@begintheorem
+ \def\@begintheorem#1#2{\trivlist
+ \item[\hskip \labelsep{\bfseries #2.\ #1.}]\itshape}%
+ \babel@save\@opargbegintheorem
+ \def\@opargbegintheorem#1#2#3{\trivlist
+ \item[\hskip \labelsep{\bfseries #2.\ #1\ (#3).}]\itshape}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The next step is to redefine some macros included into the
+% class files. It is determined which class file is loaded
+% then the original form of the macro is saved and the changes
+% are added to |\extrasmagyar|.
+%
+% First we check if the \file{book.cls} is loaded.
+% \begin{macrocode}
+\@ifclassloaded{book}{%
+% \end{macrocode}
+% \begin{macro}{\ps@headings}
+% The look of the headings is changed: we have to insert some dots
+% and change the order of chapter number and |\chaptername|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\ps@headings}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \thechapter. \@chapapp. \ %
+ \fi
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}}%
+ \else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \thechapter. \@chapapp. \ %
+ \fi
+ \fi
+ ##1}}}}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@part}
+% At the beginning of a part we need \mbox{eg.} `I.\ r\'esz'
+% instead of `Part I' (in toc too).
+% To achieve this |\@part| is redefined.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@part
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart.\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \thepart.\nobreakspace\partname
+ \csname par\endcsname
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\csname par\endcsname}%
+ \@endpart}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@chapter}
+% The same changes are made to chapter.
+% First the screen typeout and the toc are changed by
+% redefining |\@chapter|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@chapter
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\thechapter.\space\@chapapp.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter.}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@makechapterhead}
+% Then the look of the chapter-start is modified by redefining
+% |\@makechapterhead|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@makechapterhead
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \huge\bfseries \thechapter.\nobreakspace\@chapapp{}
+ \csname par\endcsname\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\csname par\endcsname\nobreak
+ \vskip 40\p@
+ }}}%
+% \end{macrocode}
+% \end{macro}
+% This the end of the book class modification.
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+% Now we check if \file{report.cls} is loaded.
+% \begin{macrocode}
+\@ifclassloaded{report}{%
+% \end{macrocode}
+% \begin{macro}{\ps@headings}
+% First the headings are modified just in case of the book class.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\ps@headings}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thechapter. \@chapapp. \ %
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}}%
+ \else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thechapter. \@chapapp. \ %
+ \fi
+ ##1}}}}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@chapter}
+% Chapter-start modification with |\@chapter|
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@chapter
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\thechapter.\space\@chapapp.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter.}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@makechapterhead}
+% and |\@makechapterhead|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\@makechapterhead
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \huge\bfseries \thechapter.\nobreakspace\@chapapp{}
+ \csname par\endcsname\nobreak
+ \vskip 20\p@
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\csname par\endcsname\nobreak
+ \vskip 40\p@
+ }}}%
+% \end{macrocode}
+% \end{macro}
+% End of report class modification.
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+% Checking if \file{article.cls} is loaded.
+% \begin{macrocode}
+\@ifclassloaded{article}{%
+% \end{macrocode}
+% \begin{macro}{\ps@headings}
+% Changing headings by redefining |\ps@headings|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\ps@headings}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection.\quad
+ \fi
+ ##1}}{}}%
+ \def\subsectionmark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\@ne
+ \thesubsection.\quad
+ \fi
+ ##1}}}%
+ \else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection.\quad
+ \fi
+ ##1}}}}%
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+% No more necessary changes specific to the article class.
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+% And now this is the turn of \file{letter.cls}.
+% \begin{macrocode}
+\@ifclassloaded{letter}{%
+% \end{macrocode}
+% \begin{macro}{\ps@headings}
+% In the headings the page number must be followed by a dot
+% and then |\pagename|.
+% \begin{macrocode}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\ps@headings}
+ \expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@oddhead{\slshape\headtoname{:} \ignorespaces\toname
+ \hfil \@date
+ \hfil \thepage.\nobreakspace\pagename}%
+ \let\@evenhead\@oddhead}
+ \else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{\slshape\headtoname{:} \ignorespaces\toname
+ \hfil \@date
+ \hfil \thepage.\nobreakspace\pagename}}
+ \fi}%
+% \end{macrocode}
+% \end{macro}
+% End of letter class.
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+% After making the changes to the \LaTeX{}
+% macros we define some new ones to handle the problem
+% with definite articles.
+% \begin{macro}{\az}
+% |\az| is a user-level command which decides if the next
+% character is a star. |\@az| is called for |\az*| and
+% |\az@| for |\az|.
+% \begin{macrocode}
+\def\az{a\@ifstar{\@az}{\az@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Az}
+% |\Az| is used at the beginning of a sentence. Otherwise it behaves
+% the same as |\az|.
+% \begin{macrocode}
+\def\Az{A\@ifstar{\@az}{\az@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\az@}
+% |\az@| is called if there is no star after |\az| or |\Az|.
+% It calls |\@az| and writes |#1| separating with a non-breakable
+% space.
+% \begin{macrocode}
+\def\az@#1{\@az{#1}\nobreakspace#1}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@az}
+% This macro calls |\hun@tempadef| to remove the accents from
+% the argument then calls |\@@az| that determines if a `z'
+% should be written after a/A (written by |\az|/|\Az|).
+% \begin{macrocode}
+\def\@az#1{%
+ \hun@tempadef{relax}{relax}{#1}%
+ \edef\@tempb{\noexpand\@@az\@tempa\hbox!}%
+ \@tempb}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hun@tempadef}
+% The macro |\hun@tempadef| has three tasks:
+% \begin{itemize}
+% \item Accent removal. Accented letters confuse
+% |\@@az|, the main definite article determinator
+% macro, so they must be changed to their non-accented
+% counterparts. Special letters must also be changed,
+% \mbox{eg.} \oe$\,\rightarrow\,$o.
+% \item Labels must be expanded.
+% \item To handle Roman numerals correctly, commands starting
+% with |\hun@| are defined for labels containing Roman
+% numbers with the Roman numerals
+% replaced by their Arabic representation.
+% This macro can check if there is a |\hun@| command.
+% \end{itemize}
+% There are three arguments:
+% \begin{enumerate}
+% \item The primary command that should be expanded if it exists.
+% This is usually the |\hun@| command for a label.
+% \item The secondary command which is used if the first one
+% is |\relax|. This is usually the original \LaTeX{}
+% command for a label.
+% \item This is used if the first two is |\relax|. For this one
+% no expansion is carried out but the accents are still
+% removed and special letters are changed.
+% \end{enumerate}
+% \changes{magyar-1.4f}{2003/09/29}{Added
+% \cs{def}\cs{safe@activesfalse{}} as a fix for PR3426}
+% \begin{macrocode}
+\def\hun@tempadef#1#2#3{%
+ \begingroup
+ \def\@safe@activesfalse{}%
+ \def\setbox ##1{}% to get rid of accents and special letters
+ \def\hbox ##1{}%
+ \def\accent ##1 ##2{##2}%
+ \def\add@accent ##1##2{##2}%
+ \def\@text@composite@x ##1##2{##2}%
+ \def\i{i}\def\j{j}%
+ \def\ae{a}\def\AE{A}\def\oe{o}\def\OE{O}%
+ \def\ss{s}\def\L{L}%
+ \def\d{}\def\b{}\def\c{}\def\t{}%
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\ifx\csname #2\endcsname\relax
+ \xdef\@tempa{#3}%
+ \else
+ \xdef\@tempa{\csname #2\endcsname}%
+ \fi
+ \else
+ \xdef\@tempa{\csname #1\endcsname}%
+ \fi
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% The following macros are used to determine the definite
+% article for a label's expansion.
+% \begin{macro}{\aref}
+% |\aref| is an alias for |\azr|.
+% \begin{macrocode}
+\def\aref{\azr}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Aref}
+% |\Aref| is an alias for |\Azr|.
+% \begin{macrocode}
+\def\Aref{\Azr}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azr}
+% |\azr| calls |\@azr| if the next character is a star,
+% otherwise it calls |\azr@|.
+% \begin{macrocode}
+\def\azr{a\@ifstar{\@azr}{\azr@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Azr}
+% |\Azr| is the same as |\azr| except that it writes `A'
+% instead of `a'.
+% \begin{macrocode}
+\def\Azr{A\@ifstar{\@azr}{\azr@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azr@}
+% |\azr@| decides if the next character is |(| and
+% in that case it calls |\azr@@@| which writes an extra |(|
+% for equation referencing. Otherwise |\azr@@| is called.
+% \begin{macrocode}
+\def\azr@{\@ifnextchar ({\azr@@@}{\azr@@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azr@@}
+% Calls |\@azr| then writes the label's expansion preceded by
+% a non-breakable space.
+% \begin{macrocode}
+\def\azr@@#1{\@azr{#1}\nobreakspace\ref{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azr@@@}
+% Same as |\azr@@| but inserts a |(| between the
+% non-breakable space and the label expansion.
+% \begin{macrocode}
+\def\azr@@@(#1{\@azr{#1}\nobreakspace(\ref{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@azr}
+% Calls |\hun@tempadef| to choose between the label's
+% |\hun@| or original \LaTeX{} command and to expand
+% it with accent removal and special letter substitution.
+% Then calls |\@@az|, the core macro of definite article handling.
+% \begin{macrocode}
+\def\@azr#1{%
+ \hun@tempadef{hun@r@#1}{r@#1}{}%
+ \ifx\@tempa\empty
+ \else
+ \edef\@tempb{\noexpand\@@az\expandafter\@firstoftwo\@tempa\hbox!}%
+ \@tempb
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The following commands are used to generate the definite article
+% for the page number of a label.
+% \begin{macro}{\apageref}
+% |\apageref| is an alias for |\azp|.
+% \begin{macrocode}
+\def\apageref{\azp}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Apageref}
+% |\Apageref| is an alias for |\Azp|.
+% \begin{macrocode}
+\def\Apageref{\Azp}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azp}
+% Checks if the next character is |*| and calls
+% |\@azp| or |\azp@|.
+% \begin{macrocode}
+\def\azp{a\@ifstar{\@azp}{\azp@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Azp}
+% Same as |\azp| except that it writes `A' instead of `a'.
+% \begin{macrocode}
+\def\Azp{A\@ifstar{\@azp}{\azp@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azp@}
+% Calls |\@azp| then writes the label's page preceded by
+% a non-breakable space.
+% \begin{macrocode}
+\def\azp@#1{\@azp{#1}\nobreakspace\pageref{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@azp}
+% Calls |\hun@tempadef| then takes the label's page and passes
+% it to |\@@az|.
+% \begin{macrocode}
+\def\@azp#1{%
+ \hun@tempadef{hun@r@#1}{r@#1}{}%
+ \ifx\@tempa\empty
+ \else
+ \edef\@tempb{\noexpand\@@az\expandafter\@secondoftwo\@tempa\hbox!}%
+ \@tempb
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% The following macros are used to give the definite article to
+% citations.
+% \begin{macro}{\acite}
+% This is an alias for |\azc|.
+% \begin{macrocode}
+\def\acite{\azc}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Acite}
+% This is an alias for |\Azc|.
+% \begin{macrocode}
+\def\Acite{\Azc}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azc}
+% Checks if the next character is a star and
+% calls |\@azc| or |\azc@|.
+% \begin{macrocode}
+\def\azc{a\@ifstar{\@azc}{\azc@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Azc}
+% Same as |\azc| but used at the beginning of sentences.
+% \begin{macrocode}
+\def\Azc{A\@ifstar{\@azc}{\azc@}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azc@}
+% If there is no star we accept an optional argument,
+% just like the |\cite| command.
+% \begin{macrocode}
+\def\azc@{\@ifnextchar [{\azc@@}{\azc@@[]}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\azc@@}
+% First calls |\@azc| then |\cite|.
+% \begin{macrocode}
+\def\azc@@[#1]#2{%
+ \@azc{#2}\nobreakspace\def\@tempa{#1}%
+ \ifx\@tempa\@empty\cite{#2}\else\cite[#1]{#2}\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@azc}
+% This is an auxiliary macro to get the first cite label
+% from a comma-separated list.
+% \begin{macrocode}
+\def\@azc#1{\@@azc#1,\hbox!}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@azc}
+% This one uses only the first argument, that is the first
+% element of the comma-separated list of cite labels.
+% Calls |\hun@tempadef| to expand the cite label with accent
+% removal and special letter replacement.
+% Then |\@@az|, the core macro, is called.
+% \begin{macrocode}
+\def\@@azc#1,#2\hbox#3!{%
+ \hun@tempadef{hun@b@#1}{b@#1}{}%
+ \ifx\@tempa\empty
+ \else
+ \edef\@tempb{\noexpand\@@az\@tempa\hbox!}%
+ \@tempb
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hun@number@lehgth}
+% This macro is used to count the number of digits in its
+% argument until a non-digit character is found or
+% the end of the argument is reached.
+% It must be called as
+% |\hun@number@lehgth|\textit{arg}|\hbox\hbox!| and
+% |\count@| must be zeroed.
+% It is called by |\@@az|.
+% \begin{macrocode}
+\def\hun@number@lehgth#1#2\hbox#3!{%
+ \ifcat\noexpand#11%
+ \ifnum\expandafter`\csname#1\endcsname>47
+ \ifnum\expandafter`\csname#1\endcsname<58
+ \advance\count@ by \@ne
+ \hun@number@lehgth#2\hbox\hbox!\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hun@alph@lehgth}
+% This is used to count the number of letters until a
+% non-letter is found or the end of the argument is reached.
+% It must be called as
+% |\hun@alph@lehgth|\textit{arg}|\hbox\hbox!| and
+% |\count@| must be set to zero.
+% It is called by |\@@az@string|.
+% \begin{macrocode}
+\def\hun@alph@lehgth#1#2\hbox#3!{%
+ \ifcat\noexpand#1A%
+ \advance\count@ by \@ne
+ \hun@alph@lehgth#2\hbox\hbox!\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@az@string}
+% This macro is called by |\@@az| if the argument begins
+% with a letter.
+% The task of |\@@az@string| is to determine if the argument
+% starts with a vowel and in that case |\let\@tempa\@tempb|.
+% After checking if the first letter is A, E, I, O, or U,
+% |\hun@alph@lehgth| is called
+% to determine the length of the argument. If it gives 1
+% (that is the argument is a single-letter one or the second
+% character is not letter) then the letters L, M, N, R, S, X, and Y
+% are also considered as a vowel since their Hungarian pronounced
+% name starts with a vowel.
+% \begin{macrocode}
+\def\@@az@string#1#2{%
+ \ifx#1A%
+ \let\@tempa\@tempb
+ \else\ifx#1E%
+ \let\@tempa\@tempb
+ \else\ifx#1I%
+ \let\@tempa\@tempb
+ \else\ifx#1O%
+ \let\@tempa\@tempb
+ \else\ifx#1U%
+ \let\@tempa\@tempb
+ \fi\fi\fi\fi\fi
+ \ifx\@tempa\@tempb
+ \else
+ \count@\z@
+ \hun@alph@lehgth#1#2\hbox\hbox!%
+ \ifnum\count@=\@ne
+ \ifx#1F%
+ \let\@tempa\@tempb
+ \else\ifx#1L%
+ \let\@tempa\@tempb
+ \else\ifx#1M%
+ \let\@tempa\@tempb
+ \else\ifx#1N%
+ \let\@tempa\@tempb
+ \else\ifx#1R%
+ \let\@tempa\@tempb
+ \else\ifx#1S%
+ \let\@tempa\@tempb
+ \else\ifx#1X%
+ \let\@tempa\@tempb
+ \else\ifx#1Y%
+ \let\@tempa\@tempb
+ \fi\fi\fi\fi\fi\fi\fi\fi
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@az}
+% This macro is the core of definite article handling.
+% It determines if the argument needs `az' or `a' definite
+% article by setting |\@tempa| to `z' or |\@empty|.
+% It sets |\@tempa| to `z' if
+% \begin{itemize}
+% \item the first character of the argument is 5; or
+% \item the first character of the argument is 1 and
+% the $\mathit{length\ of\ the\ number} \pmod 3 = 1$
+% (one--egy, thousand--ezer, million--egymilli\'o,\dots); or
+% \item the first character of the argument is
+% a, A, e, E, i, I, o, O, u, or U; or
+% \item the first character of the argument is
+% l, L, m, M, n, N, r, R, s, S, x, X, y, or Y
+% and the length of the argument is 1 or the second
+% character is a non-letter.
+% \end{itemize}
+% At the end it calls |\@tempa|, that is, it either typesets a `z'
+% or nothing.
+% \begin{macrocode}
+\def\@@az#1#2\hbox#3!{%
+ \let\@tempa\@empty
+ \def\@tempb{z}%
+ \uppercase{%
+ \ifx5#1%
+ \let\@tempa\@tempb
+ \else\ifx1#1%
+ \count@\@ne
+ \hun@number@lehgth#2\hbox\hbox!%
+ \loop
+ \ifnum\count@>\thr@@
+ \advance\count@-\thr@@
+ \repeat
+ \ifnum\count@=\@ne
+ \let\@tempa\@tempb
+ \fi
+ \else
+ \@@az@string{#1}{#2}%
+ \fi\fi
+ }%
+ \@tempa}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\refstepcounter}
+% |\refstepcounter| must be redefined in order to keep
+% |\@currentlabel| unexpanded. This is necessary to enable
+% the |\label| command to write a |\hunnewlabel| command
+% to the aux file with the Roman numerals substituted by
+% their Arabic representations.
+% Of course, the original definition of |\refstepcounter| is
+% saved and restored if the Hungarian language is switched off.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\refstepcounter
+ \def\refstepcounter#1{\stepcounter{#1}%
+ \def\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\label}
+% |\label| is redefined to write another line into the aux
+% file: |\hunnewlabel{ }{ }| where the Roman numerals
+% are replaced their Arabic representations.
+% The original definition of |\label| is saved into
+% |\old@label| and it is also called by |\label|.
+% On leaving the Hungarian typesetting mode |\label|'s
+% original is restored since it is added to |\noextrasmagyar|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \let\old@label\label
+ \def\label#1{\@bsphack
+ \old@label{#1}%
+ \begingroup
+ \let\romannumeral\number
+ \def\@roman##1{\number ##1}%
+ \def\@Roman##1{\number ##1}%
+ {\toks0={\noexpand\noexpand\noexpand\number}%
+ \def\number##1{\the\toks0 ##1}\xdef\tempb@{\thepage}}%
+ \edef\@tempa##1{\noexpand\protected@write\@auxout{}%
+ {\noexpand\string\noexpand\hunnewlabel
+ {##1}{{\@currentlabel}{\tempb@}}}}%
+ \@tempa{#1}%
+ \endgroup
+ \@esphack}%
+}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \let\label\old@label
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hunnewlabel}
+% Finally, |\hunnewlabel| is defined.
+% It checks if the label's expansion (|#2|) differs from that
+% one given in the |\newlabel| command. If yes
+% (that is, the label contains some Roman numerals),
+% it defines the macro |\hun@r@|\textit{label},
+% otherwise it does nothing.
+% \begin{macrocode}
+\def\hunnewlabel#1#2{%
+ \def\@tempa{#2}%
+ \expandafter\ifx\csname r@#1\endcsname\@tempa
+ \relax% \message{No need for def: #1}%
+ \else
+ \global\expandafter\let\csname hun@r@#1\endcsname\@tempa%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% For Hungarian the |`| character is made active.
+% \changes{magyar-1.4c}{2001/03/05}{Make sure that the grave accent
+% has catcode 12 \emph{before} it is made \cs{active}}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@filesw\immediate\write\@auxout{\catcode096=12}\fi}
+\initiate@active@char{`}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \languageshorthands{magyar}%
+ \bbl@activate{`}}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@deactivate{`}}
+% \end{macrocode}
+%
+% The character sequence |``| is declared as a shorthand
+% in order to produce
+% the opening quotation sign appropriate for Hungarian.
+% \begin{macrocode}
+\declare@shorthand{magyar}{``}{\glqq}
+% \end{macrocode}
+%
+% In Hungarian there are some long double consonants which
+% must be hyphenated specially.
+% For all these long double consonants (except dzzs, that is
+% extremely very-very rare) a shortcut is defined.
+% \begin{macrocode}
+\declare@shorthand{magyar}{`c}{\textormath{\bbl@disc{c}{cs}}{c}}
+\declare@shorthand{magyar}{`C}{\textormath{\bbl@disc{C}{CS}}{C}}
+\declare@shorthand{magyar}{`d}{\textormath{\bbl@disc{d}{dz}}{d}}
+\declare@shorthand{magyar}{`D}{\textormath{\bbl@disc{D}{DZ}}{D}}
+\declare@shorthand{magyar}{`g}{\textormath{\bbl@disc{g}{gy}}{g}}
+\declare@shorthand{magyar}{`G}{\textormath{\bbl@disc{G}{GY}}{G}}
+\declare@shorthand{magyar}{`l}{\textormath{\bbl@disc{l}{ly}}{l}}
+\declare@shorthand{magyar}{`L}{\textormath{\bbl@disc{L}{LY}}{L}}
+\declare@shorthand{magyar}{`n}{\textormath{\bbl@disc{n}{ny}}{n}}
+\declare@shorthand{magyar}{`N}{\textormath{\bbl@disc{N}{NY}}{N}}
+\declare@shorthand{magyar}{`s}{\textormath{\bbl@disc{s}{sz}}{s}}
+\declare@shorthand{magyar}{`S}{\textormath{\bbl@disc{S}{SZ}}{S}}
+\declare@shorthand{magyar}{`t}{\textormath{\bbl@disc{t}{ty}}{t}}
+\declare@shorthand{magyar}{`T}{\textormath{\bbl@disc{T}{TY}}{T}}
+\declare@shorthand{magyar}{`z}{\textormath{\bbl@disc{z}{zs}}{z}}
+\declare@shorthand{magyar}{`Z}{\textormath{\bbl@disc{Z}{ZS}}{Z}}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{magyar-1.3h}{1996/10/30}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/magyar.ins b/Master/texmf-dist/source/generic/babel/magyar.ins
new file mode 100644
index 00000000000..ea4b4851d12
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/magyar.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{magyar.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{magyar.ldf}{\from{magyar.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/ngermanb.dtx b/Master/texmf-dist/source/generic/babel/ngermanb.dtx
new file mode 100644
index 00000000000..12b940fdceb
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/ngermanb.dtx
@@ -0,0 +1,357 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{266}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{ngermanb.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{ngermanb}
+%\fi
+%\ProvidesFile{ngermanb.dtx}
+ [2004/02/20 v2.6m new German support from the babel system]
+%\iffalse
+%% File `ngermanb.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2004
+%% by Johannes Braams, TeXniek
+%
+%% new Germanb Language Definition File
+%% Copyright (C) 1989 - 2004
+%% by Bernd Raichle raichle at azu.Informatik.Uni-Stuttgart.de
+%% Johannes Braams, TeXniek,
+%% Walter Schmidt.
+% This file is based on german.tex version 2.5e
+% by Bernd Raichle, Hubert Partl et.al.
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{ngermanb.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{ngermanb.dtx}
+%
+% \changes{ngermanb-2.6f}{1999/03/24}{Renamed from \file{germanb.ldf};
+% language names changed from \texttt{german} and \texttt{austrian}
+% to \texttt{ngerman} and \texttt{naustrian}.}
+%
+% \section{The German language -- new orthography}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% German language with the `new orthography' introduced in
+% August 1998. This includes also the Austrian dialect of this
+% language.
+%
+% As with the `traditional' German orthography,
+% the character |"| is made active, and
+% the commands in table~\ref{tab:german-quote} can be used, except
+% for |"ck| and |"ff| etc., which are no longer required.
+%
+% The internal language names are |ngerman| and |naustrian|.
+%
+% \StopEventually{}
+%
+% When this file was read through the option \Lopt{ngermanb} we make
+% it behave as if \Lopt{ngerman} was specified.
+% \begin{macrocode}
+\def\bbl@tempa{ngermanb}
+\ifx\CurrentOption\bbl@tempa
+ \def\CurrentOption{ngerman}
+\fi
+% \end{macrocode}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{ngerman} will be an `unknown' language, so we
+% have to make it known. So we check for the existence of
+% |\l@ngerman| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@ngerman\@undefined
+ \@nopatterns{ngerman}
+ \adddialect\l@ngerman0
+\fi
+% \end{macrocode}
+%
+% For the Austrian version of these definitions we just add another
+% language.
+% \begin{macrocode}
+\adddialect\l@naustrian\l@ngerman
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the German language.
+%
+% \begin{macro}{\captionsngerman}
+% \begin{macro}{\captionsnaustrian}
+% Either the macro |\captionnsgerman| or the macro
+% |\captionsnaustrian| will define all strings used in the four
+% standard document classes provided with \LaTeX.
+%
+% \changes{ngermanb-2.6k}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\@namedef{captions\CurrentOption}{%
+ \def\prefacename{Vorwort}%
+ \def\refname{Literatur}%
+ \def\abstractname{Zusammenfassung}%
+ \def\bibname{Literaturverzeichnis}%
+ \def\chaptername{Kapitel}%
+ \def\appendixname{Anhang}%
+ \def\contentsname{Inhaltsverzeichnis}% % oder nur: Inhalt
+ \def\listfigurename{Abbildungsverzeichnis}%
+ \def\listtablename{Tabellenverzeichnis}%
+ \def\indexname{Index}%
+ \def\figurename{Abbildung}%
+ \def\tablename{Tabelle}% % oder: Tafel
+ \def\partname{Teil}%
+ \def\enclname{Anlage(n)}% % oder: Beilage(n)
+ \def\ccname{Verteiler}% % oder: Kopien an
+ \def\headtoname{An}%
+ \def\pagename{Seite}%
+ \def\seename{siehe}%
+ \def\alsoname{siehe auch}%
+ \def\proofname{Beweis}%
+ \def\glossaryname{Glossar}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\datengerman}
+% The macro |\datengerman| redefines the command
+% |\today| to produce German dates.
+% \begin{macrocode}
+\def\month@ngerman{\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi}
+\def\datengerman{\def\today{\number\day.~\month@ngerman
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateanustrian}
+% The macro |\datenaustrian| redefines the command
+% |\today| to produce Austrian version of the German dates.
+% \begin{macrocode}
+\def\datenaustrian{\def\today{\number\day.~\ifnum1=\month
+ J\"anner\else \month@ngerman\fi \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasngerman}
+% \begin{macro}{\extrasnaustrian}
+% \begin{macro}{\noextrasngerman}
+% \begin{macro}{\noextrasnaustrian}
+% Either the macro |\extrasngerman| or the macros |\extrasnaustrian|
+% will perform all the extra definitions needed for the German
+% language. The macro |\noextrasngerman| is used to cancel the
+% actions of |\extrasngerman|.
+%
+% For German (as well as for Dutch) the \texttt{"} character is
+% made active. This is done once, later on its definition may vary.
+% \begin{macrocode}
+\initiate@active@char{"}
+\@namedef{extras\CurrentOption}{%
+ \languageshorthands{ngerman}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{ngermanb-2.6j}{1999/12/16}{Deactivate shorthands ouside of
+% German}
+% \begin{macrocode}
+\addto\noextrasngerman{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+%
+% In order for \TeX\ to be able to hyphenate German words which
+% contain `\ss' (in the \texttt{OT1} position |^^Y|) we have to
+% give the character a nonzero |\lccode| (see Appendix H, the \TeX
+% book).
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@savevariable{\lccode25}%
+ \lccode25=25}
+% \end{macrocode}
+%
+% The umlaut accent macro |\"| is changed to lower the umlaut dots.
+% The redefinition is done with the help of |\umlautlow|.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\"\umlautlow}
+\@namedef{noextras\CurrentOption}{\umlauthigh}
+% \end{macrocode}
+% The current
+% version of the `new' German hyphenation patterns (\file{dehyphn.tex}
+% is to be used with |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{ngermanb-2.6k}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% For German texts we need to make sure that |\frenchspacing| is
+% turned on.
+% \changes{ngermanb-2.6m}{2001/01/26}{Turn frenchspacing on, as in
+% \texttt{german.sty}}
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@frenchspacing}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The code above is necessary because we need an extra active
+% character. This character is then used as indicated in
+% table~\ref{tab:german-quote}.
+%
+% To be able to define the function of |"|, we first define a
+% couple of `support' macros.
+%
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the doublequote macros: the umlauts,
+% \begin{macrocode}
+\declare@shorthand{ngerman}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
+\declare@shorthand{ngerman}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
+\declare@shorthand{ngerman}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}}
+\declare@shorthand{ngerman}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
+\declare@shorthand{ngerman}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
+\declare@shorthand{ngerman}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}}
+% \end{macrocode}
+% tremas,
+% \begin{macrocode}
+\declare@shorthand{ngerman}{"e}{\textormath{\"{e}}{\ddot e}}
+\declare@shorthand{ngerman}{"E}{\textormath{\"{E}}{\ddot E}}
+\declare@shorthand{ngerman}{"i}{\textormath{\"{\i}}%
+ {\ddot\imath}}
+\declare@shorthand{ngerman}{"I}{\textormath{\"{I}}{\ddot I}}
+% \end{macrocode}
+% german es-zet (sharp s),
+% \begin{macrocode}
+\declare@shorthand{ngerman}{"s}{\textormath{\ss}{\@SS{}}}
+\declare@shorthand{ngerman}{"S}{\SS}
+\declare@shorthand{ngerman}{"z}{\textormath{\ss}{\@SS{}}}
+\declare@shorthand{ngerman}{"Z}{SZ}
+% \end{macrocode}
+% german and french quotes,
+% \begin{macrocode}
+\declare@shorthand{ngerman}{"`}{\glqq}
+\declare@shorthand{ngerman}{"'}{\grqq}
+\declare@shorthand{ngerman}{"<}{\flqq}
+\declare@shorthand{ngerman}{">}{\frqq}
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{ngerman}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{ngerman}{"|}{%
+ \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+\declare@shorthand{ngerman}{""}{\hskip\z@skip}
+\declare@shorthand{ngerman}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{ngerman}{"=}{\penalty\@M-\hskip\z@skip}
+% \end{macrocode}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% All that's left to do now is to define a couple of commands
+% for reasons of compatibility with \file{german.sty}.
+% \begin{macrocode}
+\def\mdqon{\shorthandon{"}}
+\def\mdqoff{\shorthandoff{"}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/norsk.dtx b/Master/texmf-dist/source/generic/babel/norsk.dtx
new file mode 100644
index 00000000000..6fe166ca066
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/norsk.dtx
@@ -0,0 +1,453 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+%\CheckSum{305}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{norsk.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{norsk}
+%\fi
+%\ProvidesFile{norsk.dtx}
+ [2005/03/30 v2.0h Norsk support from the babel system]
+%\iffalse
+%%File `norsk.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Norwegian language definition file. Contributions
+% were made by Haavard Helstrup (HAAVARD@CERNVM) and Alv Kjetil
+% Holme (HOLMEA@CERNVM); the `nynorsk' variant has been supplied by
+% Per Steinar Iversen (iversen@vxcern.cern.ch) and Terje Engeset
+% Petterst (TERJEEP@VSFYS1.FI.UIB.NO)
+%
+% Rune Kleveland (runekl at math.uio.no) added the shorthand
+% definitions
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{norsk.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{norsk.dtx}
+%
+% \changes{norsk-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{norsk-1.1a}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{norsk-1.1c}{1993/11/11}{Added a couple of translations
+% (from Per Norman Oma, TeX@itk.unit.no)}
+% \changes{norsk-1.2a}{1994/02/27}{Update for \LaTeXe}
+% \changes{norsk-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{norsk-1.2h}{1996/07/12}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{norsk-1.2h}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+%
+% \section{The Norwegian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. Contributions were made by Haavard Helstrup
+% (\texttt{HAAVARD@CERNVM)} and Alv Kjetil Holme
+% (\texttt{HOLMEA@CERNVM}); the `nynorsk' variant has been supplied
+% by Per Steinar Iversen \texttt{iversen@vxcern.cern.ch}) and Terje
+% Engeset Petterst (\texttt{TERJEEP@VSFYS1.FI.UIB.NO)}; the
+% shorthand definitions were provided by Rune Kleveland
+% (\texttt{runekl@math.uio.no}).} defines all the language definition
+% macros for the Norwegian language as well as for an alternative
+% variant `nynorsk' of this language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:norsk-quote} an overview is given of its purpose.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{.7\textwidth}}
+% |"ff|& for |ff| to be hyphenated as |ff-f|,
+% this is also implemented for b, d, f, g, l, m, n,
+% p, r, s, and t. (|o"ppussing|) \\
+% |"ee|& Hyphenate |"ee| as |\'e-e|. (|komit"een|) \\
+% |"-| & an explicit hyphen sign, allowing hyphenation in the
+% composing words. Use this for compound words when the
+% hyphenation patterns fail to hyphenate
+% properly. (|alpin"-anlegg|) \\
+% \verb="|= & Like |"-|, but inserts 0.03em space. Use it if
+% the compound point is spanned by a ligature.
+% (\verb=hoff"|intriger=) \\
+% |""| & Like |"-|, but producing no hyphen sign.
+% (|i""g\aa{}r|) \\
+% |"~| & Like |-|, but allows no hyphenation at all. (|E"~cup|)\\
+% |"=| & Like |-|, but allowing hyphenation in the composing
+% words. (|marksistisk"=leninistisk|) \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{norsk.sty}}\label{tab:norsk-quote}
+% \end{center}
+% \end{table}
+% \changes{norsk-2.0a}{1998/06/24}{Describe the use of double quote as
+% active character}
+%
+% Rune Kleveland distributes a Norwegian dictionary for ispell
+% (570000 words). It can be found at
+% |http://www.uio.no/~runekl/dictionary.html|.
+%
+% This dictionary supports the spellings |spi"sslede| for
+% `spisslede' (hyphenated spiss-slede) and other such words, and
+% also suggest the spelling |spi"sslede| for `spisslede' and
+% `spissslede'.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{norsk-1.2h}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{norsk} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@norsk| to see whether we have to do something here.
+%
+% \changes{norsk-1.0c}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \changes{norsk-1.1a}{1992/02/16}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{norsk-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to produce
+% the warning}
+% \begin{macrocode}
+\ifx\l@norsk\@undefined
+ \@nopatterns{Norsk}
+ \adddialect\l@norsk0\fi
+% \end{macrocode}
+%
+% \begin{macro}{\norskhyphenmins}
+% Some sets of Norwegian hyphenation patterns can be used with
+% |\lefthyphenmin| set to~1 and |\righthyphenmin| set to~2, but
+% the most common set |nohyph.tex| can't. So we use
+% |\lefthyphenmin=2| by default.
+% \changes{norsk-1.2f}{1995/07/02}{Added setting of hyphenmin
+% parameters}
+% \changes{norsk-2.0a}{1998/06/24}{Changed setting of hyphenmin
+% parameters to 2~2}
+% \changes{norsk-2.0e}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% Now we have to decide which version of the captions should be
+% made available. This can be done by checking the contents of
+% |\CurrentOption|.
+% \begin{macrocode}
+\def\bbl@tempa{norsk}
+\ifx\CurrentOption\bbl@tempa
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Norwegian language.
+%
+% \begin{macro}{\captionsnorsk}
+% The macro |\captionsnorsk| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{norsk-1.1a}{1992/02/16}{Added \cs{seename}, \cs{alsoname} and
+% \cs{prefacename}}
+% \changes{norsk-1.1b}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{norsk-1.2f}{1995/07/02}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{norsk-1.2g}{1996/04/01}{Replaced `Proof' by its
+% translation}
+% \changes{norsk-2.0e}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{norsk-2.0g}{1996/04/01}{Replaced `Glossary' by its
+% translation}
+% \begin{macrocode}
+ \def\captionsnorsk{%
+ \def\prefacename{Forord}%
+ \def\refname{Referanser}%
+ \def\abstractname{Sammendrag}%
+ \def\bibname{Bibliografi}% or Litteraturoversikt
+ % or Litteratur or Referanser
+ \def\chaptername{Kapittel}%
+ \def\appendixname{Tillegg}% or Appendiks
+ \def\contentsname{Innhold}%
+ \def\listfigurename{Figurer}% or Figurliste
+ \def\listtablename{Tabeller}% or Tabelliste
+ \def\indexname{Register}%
+ \def\figurename{Figur}%
+ \def\tablename{Tabell}%
+ \def\partname{Del}%
+ \def\enclname{Vedlegg}%
+ \def\ccname{Kopi sendt}%
+ \def\headtoname{Til}% in letter
+ \def\pagename{Side}%
+ \def\seename{Se}%
+ \def\alsoname{Se ogs\aa{}}%
+ \def\proofname{Bevis}%
+ \def\glossaryname{Ordliste}%
+ }
+\else
+% \end{macrocode}
+% \end{macro}
+%
+% For the `nynorsk' version of these definitions we just add a
+% ``dialect''.
+% \begin{macrocode}
+ \adddialect\l@nynorsk\l@norsk
+% \end{macrocode}
+%
+% \begin{macro}{\captionsnynorsk}
+% The macro |\captionsnynorsk| defines all strings used in the four
+% standard documentclasses provided with \LaTeX, but using a
+% different spelling than in the command |\captionsnorsk|.
+% \changes{norsk-1.1a}{1992/02/16}{Added \cs{seename}, \cs{alsoname} and
+% \cs{prefacename}}
+% \changes{norsk-1.1b}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{norsk-1.2g}{1996/04/01}{Replaced `Proof' by its
+% translation}
+% \changes{norsk-2.0e}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{norsk-2.0g}{1996/04/01}{Replaced `Glossary' by its
+% translation}
+% \changes{norks-2.0h}{2001/01/12}{Changed \cs{ccname} and \cs{alsoname}}
+% \begin{macrocode}
+ \def\captionsnynorsk{%
+ \def\prefacename{Forord}%
+ \def\refname{Referansar}%
+ \def\abstractname{Samandrag}%
+ \def\bibname{Litteratur}% or Litteraturoversyn
+ % or Referansar
+ \def\chaptername{Kapittel}%
+ \def\appendixname{Tillegg}% or Appendiks
+ \def\contentsname{Innhald}%
+ \def\listfigurename{Figurar}% or Figurliste
+ \def\listtablename{Tabellar}% or Tabelliste
+ \def\indexname{Register}%
+ \def\figurename{Figur}%
+ \def\tablename{Tabell}%
+ \def\partname{Del}%
+ \def\enclname{Vedlegg}%
+ \def\ccname{Kopi til}%
+ \def\headtoname{Til}% in letter
+ \def\pagename{Side}%
+ \def\seename{Sj\aa{}}%
+ \def\alsoname{Sj\aa{} \`{o}g}%
+ \def\proofname{Bevis}%
+ \def\glossaryname{Ordliste}%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datenorsk}
+% The macro |\datenorsk| redefines the command |\today| to produce
+% Norwegian dates.
+% \changes{norsk-1.2i}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{norsk-1.2i}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\@namedef{date\CurrentOption}{%
+ \def\today{\number\day.~\ifcase\month\or
+ januar\or februar\or mars\or april\or mai\or juni\or
+ juli\or august\or september\or oktober\or november\or desember
+ \fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasnorsk}
+% \begin{macro}{\extrasnynorsk}
+% The macro |\extrasnorsk| will perform all the extra definitions
+% needed for the Norwegian language. The macro |\noextrasnorsk| is
+% used to cancel the actions of |\extrasnorsk|.
+%
+% Norwegian typesetting requires |\frencspacing| to be in effect.
+% \begin{macrocode}
+\@namedef{extras\CurrentOption}{\bbl@frenchspacing}
+\@namedef{noextras\CurrentOption}{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% For Norsk the \texttt{"} character is made active. This is done
+% once, later on its definition may vary.
+% \changes{norsk-2.0a}{1998/06/24}{Made double quote character active}
+% \begin{macrocode}
+\initiate@active@char{"}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \languageshorthands{norsk}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{norsk-2.0c}{1999/12/17}{Deactivate shorthands ouside of
+% Norsk}
+% \begin{macrocode}
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
+ \bbl@deactivate{"}}
+% \end{macrocode}
+%
+% The code above is necessary because we need to define a number of
+% shorthand commands. These sharthand commands are then used as
+% indicated in table~\ref{tab:norsk-quote}.
+%
+% To be able to define the function of |"|, we first define a
+% couple of `support' macros.
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the discretionary shorthand commands.
+% The number of words where such hyphenation is required is for
+% each character
+% \begin{center}
+% \begin{tabular}{*{11}c}
+% b&d&f &g&k &l &n&p &r&s &t \\
+% 4&4&15&3&43&30&8&12&1&33&35
+% \end{tabular}
+% \end{center}
+% taken from a list of 83000 ispell-roots.
+%
+% \changes{norsk-2.0d}{2000/02/29}{Shorthands are the same for both
+% spelling variants, no need to use \cs{CurrentOption}}
+% \begin{macrocode}
+\declare@shorthand{norsk}{"b}{\textormath{\bbl@disc b{bb}}{b}}
+\declare@shorthand{norsk}{"B}{\textormath{\bbl@disc B{BB}}{B}}
+\declare@shorthand{norsk}{"d}{\textormath{\bbl@disc d{dd}}{d}}
+\declare@shorthand{norsk}{"D}{\textormath{\bbl@disc D{DD}}{D}}
+\declare@shorthand{norsk}{"e}{\textormath{\bbl@disc e{\'e}}{}}
+\declare@shorthand{norsk}{"E}{\textormath{\bbl@disc E{\'E}}{}}
+\declare@shorthand{norsk}{"F}{\textormath{\bbl@disc F{FF}}{F}}
+\declare@shorthand{norsk}{"g}{\textormath{\bbl@disc g{gg}}{g}}
+\declare@shorthand{norsk}{"G}{\textormath{\bbl@disc G{GG}}{G}}
+\declare@shorthand{norsk}{"k}{\textormath{\bbl@disc k{kk}}{k}}
+\declare@shorthand{norsk}{"K}{\textormath{\bbl@disc K{KK}}{K}}
+\declare@shorthand{norsk}{"l}{\textormath{\bbl@disc l{ll}}{l}}
+\declare@shorthand{norsk}{"L}{\textormath{\bbl@disc L{LL}}{L}}
+\declare@shorthand{norsk}{"n}{\textormath{\bbl@disc n{nn}}{n}}
+\declare@shorthand{norsk}{"N}{\textormath{\bbl@disc N{NN}}{N}}
+\declare@shorthand{norsk}{"p}{\textormath{\bbl@disc p{pp}}{p}}
+\declare@shorthand{norsk}{"P}{\textormath{\bbl@disc P{PP}}{P}}
+\declare@shorthand{norsk}{"r}{\textormath{\bbl@disc r{rr}}{r}}
+\declare@shorthand{norsk}{"R}{\textormath{\bbl@disc R{RR}}{R}}
+\declare@shorthand{norsk}{"s}{\textormath{\bbl@disc s{ss}}{s}}
+\declare@shorthand{norsk}{"S}{\textormath{\bbl@disc S{SS}}{S}}
+\declare@shorthand{norsk}{"t}{\textormath{\bbl@disc t{tt}}{t}}
+\declare@shorthand{norsk}{"T}{\textormath{\bbl@disc T{TT}}{T}}
+% \end{macrocode}
+% We need to treat |"f| a bit differently in order to preserve the
+% ff-ligature.
+% \changes{norsk-2.0b}{1999/11/19}{Copied the coding for \texttt{"f}
+% from germanb.dtx version 2.6g}
+% \begin{macrocode}
+\declare@shorthand{norsk}{"f}{\textormath{\bbl@discff}{f}}
+\def\bbl@discff{\penalty\@M
+ \afterassignment\bbl@insertff \let\bbl@nextff= }
+\def\bbl@insertff{%
+ \if f\bbl@nextff
+ \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\relax\discretionary{ff-}{f}{ff}\allowhyphens}{f\bbl@nextff}}
+\let\bbl@nextff=f
+% \end{macrocode}
+% We now define the French double quotes and some commands
+% concerning hyphenation:
+% \changes{norsk-2.0b}{1999/11/22}{added the french double quotes}
+% \changes{norsk-2.0d}{2000/01/28}{Use \cs{bbl@allowhyphens} in
+% \texttt{"-}}
+% \begin{macrocode}
+\declare@shorthand{norsk}{"<}{\flqq}
+\declare@shorthand{norsk}{">}{\frqq}
+\declare@shorthand{norsk}{"-}{\penalty\@M\-\bbl@allowhyphens}
+\declare@shorthand{norsk}{"|}{%
+ \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+\declare@shorthand{norsk}{""}{\hskip\z@skip}
+\declare@shorthand{norsk}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{norsk}{"=}{\penalty\@M-\hskip\z@skip}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{norsk-1.2h}{1996/11/03}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/norsk.ins b/Master/texmf-dist/source/generic/babel/norsk.ins
new file mode 100644
index 00000000000..9ec2729e642
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/norsk.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{norsk.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{norsk.ldf}{\from{norsk.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/polish.dtx b/Master/texmf-dist/source/generic/babel/polish.dtx
new file mode 100644
index 00000000000..a2e66978558
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/polish.dtx
@@ -0,0 +1,563 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{543}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{polish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{polish}
+%\fi
+%\ProvidesFile{polish.dtx}
+ [2005/03/31 v1.2l Polish support from the babel system]
+%\iffalse
+%% File `polish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Polish Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Elmar Schalueck, Michael Janich
+% Universitaet-Gesamthochschule Paderborn
+% Warburger Strasse 100
+% 4790 Paderborn
+% Germany
+% elmar at uni-paderborn.de
+% massa at uni-paderborn.de
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Polish language definition file. It was developped
+% out of Polish.tex, which was written by Elmar Schalueck and
+% Michael Janich. Polish.tex was based on code by Leszek
+% Holenderski, Jerzy Ryll and J. S. Bie\'n from Faculty of
+% Mathematics,Informatics and Mechanics of Warsaw University, exept
+% of Jerzy Ryll (Instytut Informatyki Uniwersytetu Warszawskiego).
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{polish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{polish.dtx}
+%
+% \changes{polish-1.1c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of babel.def}
+% \changes{polish-1.2d}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Polish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language-specific macros for the
+% Polish language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:polish-quote} an overview is given of its purpose.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"a| & or |\aob|, for tailed-a (like \c{a})\\
+% |"A| & or |\Aob|, for tailed-A (like \c{A})\\
+% |"e| & or |\eob|, for tailed-e (like \c{e})\\
+% |"E| & or |\Eob|, for tailed-E (like \c{E})\\
+% |"c| & or |\'c|, for accented c (like \'c),
+% same with uppercase letters and n,o,s\\
+% |"l| & or |\lpb{}|, for l with stroke (like \l)\\
+% |"L| & or |\Lpb{}|, for L with stroke (like \L)\\
+% |"r| & or |\zkb{}|, for pointed z (like \.z), cf.
+% pronounciation\\
+% |"R| & or |\Zkb{}|, for pointed Z (like \.Z)\\
+% |"z| & or |\'z|, for accented z\\
+% |"Z| & or |\'Z|, for accented Z\\
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"`| & for German left double quotes (looks like ,,). \\
+% |"'| & for German right double quotes. \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$).\\
+% \end{tabular}
+% \caption{The extra definitions made by \file{polish.sty}}
+% \label{tab:polish-quote}
+% \end{center}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{polish-1.2d}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{polish}\captionspolish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{polish} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@polish| to see whether we have to do something here.
+%
+% \changes{polish-1.1c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@polish\@undefined
+ \@nopatterns{Polish}
+ \adddialect\l@polish0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Polish language.
+%
+% \begin{macro}{\captionspolish}
+% The macro |\captionspolish| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{polish-1.2b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{polish-1.2f}{1997/09/11}{Added translation for Proof and
+% changed translation of Contents}
+% \changes{polish-1.2i}{2000/09/19}{\cs{bibname} and \cs{refname} were
+% swapped}
+% \changes{polish-1.2i}{2000/09/19}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionspolish{%
+ \def\prefacename{Przedmowa}%
+ \def\refname{Literatura}%
+ \def\abstractname{Streszczenie}%
+ \def\bibname{Bibliografia}%
+ \def\chaptername{Rozdzia\l}%
+ \def\appendixname{Dodatek}%
+ \def\contentsname{Spis tre\'sci}%
+ \def\listfigurename{Spis rysunk\'ow}%
+ \def\listtablename{Spis tablic}%
+ \def\indexname{Indeks}%
+ \def\figurename{Rysunek}%
+ \def\tablename{Tablica}%
+ \def\partname{Cz\eob{}\'s\'c}%
+ \def\enclname{Za\l\aob{}cznik}%
+ \def\ccname{Kopie:}%
+ \def\headtoname{Do}%
+ \def\pagename{Strona}%
+ \def\seename{Por\'ownaj}%
+ \def\alsoname{Por\'ownaj tak\.ze}%
+ \def\proofname{Dow\'od}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datepolish}
+% The macro |\datepolish| redefines the command |\today| to produce
+% Polish dates.
+% \changes{polish-1.2f}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{polish-1.2f}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \changes{polish-1.2i}{2000/01/08}{A missing comment character caused
+% an unwanted space character in the output}
+% \begin{macrocode}
+\def\datepolish{%
+ \def\today{\number\day~\ifcase\month\or
+ stycznia\or lutego\or marca\or kwietnia\or maja\or czerwca\or lipca\or
+ sierpnia\or wrze\'snia\or pa\'zdziernika\or listopada\or grudnia\fi
+ \space\number\year}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extraspolish}
+% \begin{macro}{\noextraspolish}
+% The macro |\extraspolish| will perform all the extra definitions
+% needed for the Polish language. The macro |\noextraspolish| is
+% used to cancel the actions of |\extraspolish|.
+%
+% For Polish the \texttt{"} character is made active. This is
+% done once, later on its definition may vary. Other languages in
+% the same document may also use the \texttt{"} character for
+% shorthands; we specify that the polish group of shorthands
+% should be used.
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extraspolish{\languageshorthands{polish}}
+\addto\extraspolish{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{polish-1.2h}{1999/12/17}{Deactivate shorthands ouside of
+% Polish}
+% \begin{macrocode}
+\addto\noextraspolish{\bbl@deactivate{"}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The code above is necessary because we need an extra
+% active character. This character is then used as indicated in
+% table~\ref{tab:polish-quote}.
+%
+% If you have problems at the end of a word with a linebreak, use
+% the other version without hyphenation tricks. Some TeX wizard may
+% produce a better solution with forcasting another token to decide
+% whether the character after the double quote is the last in a
+% word. Do it and let us know.
+%
+% In Polish texts some letters get special diacritical marks.
+% Leszek Holenderski designed the following code to position the
+% diacritics correctly for every font in every size. These macros
+% need a few extra dimension variables.
+%
+% \begin{macrocode}
+\newdimen\pl@left
+\newdimen\pl@down
+\newdimen\pl@right
+\newdimen\pl@temp
+% \end{macrocode}
+%
+% \begin{macro}{\sob}
+% The macro |\sob| is used to put the `ogonek' in the right
+% place.
+%
+% \changes{polish-1.2d}{1996/08/18}{This macro is meant to be used in
+% horizontal mode; so leave vertical mode if necessary}
+% \begin{macrocode}
+\def\sob#1#2#3#4#5{%parameters: letter and fractions hl,ho,vl,vo
+ \setbox0\hbox{#1}\setbox1\hbox{$_\mathchar'454$}\setbox2\hbox{p}%
+ \pl@right=#2\wd0 \advance\pl@right by-#3\wd1
+ \pl@down=#5\ht1 \advance\pl@down by-#4\ht0
+ \pl@left=\pl@right \advance\pl@left by\wd1
+ \pl@temp=-\pl@down \advance\pl@temp by\dp2 \dp1=\pl@temp
+ \leavevmode
+ \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\aob}
+% \begin{macro}{\Aob}
+% \begin{macro}{\eob}
+% \begin{macro}{\Eob}
+% The ogonek is placed with the letters `a', `A', `e', and `E'.
+% \changes{polish-1.2d}{1996/08/18}{Use the constructed version of the
+% characters only in OT1; use proper characters in T1.}
+% \begin{macrocode}
+\DeclareTextCommand{\aob}{OT1}{\sob a{.66}{.20}{0}{.90}}
+\DeclareTextCommand{\Aob}{OT1}{\sob A{.80}{.50}{0}{.90}}
+\DeclareTextCommand{\eob}{OT1}{\sob e{.50}{.35}{0}{.93}}
+\DeclareTextCommand{\Eob}{OT1}{\sob E{.60}{.35}{0}{.90}}
+% \end{macrocode}
+% For the 'new' \texttt{T1} encoding we can provide simpler
+% definitions.
+% \begin{macrocode}
+\DeclareTextCommand{\aob}{T1}{\k a}
+\DeclareTextCommand{\Aob}{T1}{\k A}
+\DeclareTextCommand{\eob}{T1}{\k e}
+\DeclareTextCommand{\Eob}{T1}{\k E}
+% \end{macrocode}
+% Construct the characters by default from the OT1 encoding.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\aob}{\UseTextSymbol{OT1}{\aob}}
+\ProvideTextCommandDefault{\Aob}{\UseTextSymbol{OT1}{\Aob}}
+\ProvideTextCommandDefault{\eob}{\UseTextSymbol{OT1}{\eob}}
+\ProvideTextCommandDefault{\Eob}{\UseTextSymbol{OT1}{\Eob}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\spb}
+% The macro |\spb| is used to put the `poprzeczka' in the
+% right place.
+%
+% \changes{polish-1.2d}{1996/08/18}{\cs{spb} is meant to be used in
+% horizontal mode; so leave vertical mode if necessary}
+% \begin{macrocode}
+\def\spb#1#2#3#4#5{%
+ \setbox0\hbox{#1}\setbox1\hbox{\char'023}%
+ \pl@right=#2\wd0 \advance\pl@right by-#3\wd1
+ \pl@down=#5\ht1 \advance\pl@down by-#4\ht0
+ \pl@left=\pl@right \advance\pl@left by\wd1
+ \ht1=\pl@down \dp1=-\pl@down
+ \leavevmode
+ \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\skb}
+% The macro |\skb| is used to put the `kropka' in the
+% right place.
+%
+% \changes{polish-1.2d}{1996/08/18}{\cs{skb} is meant to be used in
+% horizontal mode; so leave vertical mode if necessary}
+% \begin{macrocode}
+\def\skb#1#2#3#4#5{%
+ \setbox0\hbox{#1}\setbox1\hbox{\char'056}%
+ \pl@right=#2\wd0 \advance\pl@right by-#3\wd1
+ \pl@down=#5\ht1 \advance\pl@down by-#4\ht0
+ \pl@left=\pl@right \advance\pl@left by\wd1
+ \leavevmode
+ \kern\pl@right\lower\pl@down\box1\kern-\pl@left #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textpl}
+% For the `poprzeczka' and the `kropka' in text fonts we don't need
+% any special coding, but we can (almost) use what is already
+% available.
+%
+% \begin{macrocode}
+\def\textpl{%
+ \def\lpb{\plll}%
+ \def\Lpb{\pLLL}%
+ \def\zkb{\.z}%
+ \def\Zkb{\.Z}}
+% \end{macrocode}
+% Initially we assume that typesetting is done with text fonts.
+% \changes{polish-1.0a}{1993/11/05}{Initially execute `textpl}
+% \begin{macrocode}
+\textpl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\lll=\l \let\LLL=\L
+\def\plll{\lll}
+\def\pLLL{\LLL}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\telepl}
+% But for the `teletype' font in `OT1' encoding we have to take some
+% special actions, involving the macros defined above.
+%
+% \begin{macrocode}
+\def\telepl{%
+ \def\lpb{\spb l{.45}{.5}{.4}{.8}}%
+ \def\Lpb{\spb L{.23}{.5}{.4}{.8}}%
+ \def\zkb{\skb z{.5}{.5}{1.2}{0}}%
+ \def\Zkb{\skb Z{.5}{.5}{1.1}{0}}}
+% \end{macrocode}
+% \end{macro}
+%
+% To activate these codes the font changing commands as they are
+% defined in \LaTeX\ are modified. The same is done for plain
+% \TeX's font changing commands.
+%
+% When |\selectfont| is undefined the current format is spposed to be
+% either plain (based) or \LaTeX$\:$2.09.
+% \changes{polish-1.2a}{1995/06/06}{Don't modify \cs{rm} and friends for
+% \LaTeXe, take \cs{selectfont } instead}
+% \begin{macrocode}
+\ifx\selectfont\@undefined
+ \ifx\prm\@undefined \addto\rm{\textpl}\else \addto\prm{\textpl}\fi
+ \ifx\pit\@undefined \addto\it{\textpl}\else \addto\pit{\textpl}\fi
+ \ifx\pbf\@undefined \addto\bf{\textpl}\else \addto\pbf{\textpl}\fi
+ \ifx\psl\@undefined \addto\sl{\textpl}\else \addto\psl{\textpl}\fi
+ \ifx\psf\@undefined \else \addto\psf{\textpl}\fi
+ \ifx\psc\@undefined \else \addto\psc{\textpl}\fi
+ \ifx\ptt\@undefined \addto\tt{\telepl}\else \addto\ptt{\telepl}\fi
+\else
+% \end{macrocode}
+% When |\selectfont| exists we assume \LaTeXe.
+% \begin{macrocode}
+ \expandafter\addto\csname selectfont \endcsname{%
+ \csname\f@encoding @pl\endcsname}
+\fi
+% \end{macrocode}
+% Currently we support the OT1 and T1 encodings. For T1 we don't
+% have to make a difference between typewriter fonts and other
+% fonts, they all have the same glyphs.
+% \begin{macrocode}
+\expandafter\let\csname T1@pl\endcsname\textpl
+% \end{macrocode}
+% For OT1 we need to check the current font family, stored in
+% |\f@family|. Unfortunately we need a hack as |\ttdefault| is
+% defined as a |\long| macro, while |\f@family| is not.
+% \begin{macrocode}
+\expandafter\def\csname OT1@pl\endcsname{%
+ \long\edef\curr@family{\f@family}%
+ \ifx\curr@family\ttdefault
+ \telepl
+ \else
+ \textpl
+ \fi}
+% \end{macrocode}
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the doublequote macros for diacritics,
+% \changes{polish-1.1d}{1995/01/31}{The dqmacro for C used \cs{'c}}
+% \begin{macrocode}
+\declare@shorthand{polish}{"a}{\textormath{\aob}{\ddot a}}
+\declare@shorthand{polish}{"A}{\textormath{\Aob}{\ddot A}}
+\declare@shorthand{polish}{"c}{\textormath{\'c}{\acute c}}
+\declare@shorthand{polish}{"C}{\textormath{\'C}{\acute C}}
+\declare@shorthand{polish}{"e}{\textormath{\eob}{\ddot e}}
+\declare@shorthand{polish}{"E}{\textormath{\Eob}{\ddot E}}
+\declare@shorthand{polish}{"l}{\textormath{\lpb}{\ddot l}}
+\declare@shorthand{polish}{"L}{\textormath{\Lpb}{\ddot L}}
+\declare@shorthand{polish}{"n}{\textormath{\'n}{\acute n}}
+\declare@shorthand{polish}{"N}{\textormath{\'N}{\acute N}}
+\declare@shorthand{polish}{"o}{\textormath{\'o}{\acute o}}
+\declare@shorthand{polish}{"O}{\textormath{\'O}{\acute O}}
+\declare@shorthand{polish}{"s}{\textormath{\'s}{\acute s}}
+\declare@shorthand{polish}{"S}{\textormath{\'S}{\acute S}}
+% \end{macrocode}
+% \begin{macro}{\polishrz}
+% \begin{macro}{\polishzx}
+% \changes{polish-1.2j}{2000/11/11}{Added support for two
+% notationstyles for kropka and accented z}
+% The command |\polishrz| defines the shorthands |"r|, |"z| and
+% |"x| to produce pointed z, accented z and |"x|. This is the
+% default as these shorthands were defined by this language
+% definition file for quite some time.
+% \begin{macrocode}
+\newcommand*{\polishrz}{%
+ \declare@shorthand{polish}{"r}{\textormath{\zkb}{\ddot r}}%
+ \declare@shorthand{polish}{"R}{\textormath{\Zkb}{\ddot R}}%
+ \declare@shorthand{polish}{"z}{\textormath{\'z}{\acute z}}%
+ \declare@shorthand{polish}{"Z}{\textormath{\'Z}{\acute Z}}%
+ \declare@shorthand{polish}{"x}{\dq x}%
+ \declare@shorthand{polish}{"X}{\dq X}%
+ }
+\polishrz
+% \end{macrocode}
+% The command |\polishzx| switches to a different set of
+% shorthands, |"z|, |"x| and |"r| to produce pointed z, accented z
+% and |"r|; a different shorthand notation also in use.
+% \changes{polish-1.2k}{2003/10/12}{Fixed a typo}
+% \begin{macrocode}
+\newcommand*{\polishzx}{%
+ \declare@shorthand{polish}{"z}{\textormath{\zkb}{\ddot z}}%
+ \declare@shorthand{polish}{"Z}{\textormath{\Zkb}{\ddot Z}}%
+ \declare@shorthand{polish}{"x}{\textormath{\'z}{\acute x}}%
+ \declare@shorthand{polish}{"X}{\textormath{\'Z}{\acute X}}%
+ \declare@shorthand{polish}{"r}{\dq r}%
+ \declare@shorthand{polish}{"R}{\dq R}%
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Then we define access to two forms of quotation marks, similar
+% to the german and french quotation marks.
+% \changes{polish-1.2e}{1997/04/03}{Removed empty groups after
+% double quote and guillemot characters}
+% \changes{polish-1.2l}{2004/02/18}{Changed closing quote}
+% \begin{macrocode}
+\declare@shorthand{polish}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{polish}{"'}{%
+ \textormath{\textquotedblright}{\mbox{\textquotedblright}}}
+\declare@shorthand{polish}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{polish}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define two shorthands to be able to specify hyphenation
+% breakpoints that behavew a little different from |\-|.
+% \begin{macrocode}
+\declare@shorthand{polish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{polish}{""}{\hskip\z@skip}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{polish}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% All that's left to do now is to define a couple of commands
+% for reasons of compatibility with \file{polish.tex}.
+% \changes{polish-1.2f}{1998/06/07}{Now use \cs{shorthandon} and
+% \cs{shorthandoff}}
+% \begin{macrocode}
+\def\mdqon{\shorthandon{"}}
+\def\mdqoff{\shorthandoff{"}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{polish-1.2d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{polish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/polish.ins b/Master/texmf-dist/source/generic/babel/polish.ins
new file mode 100644
index 00000000000..00a5e50a92b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/polish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{polish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{polish.ldf}{\from{polish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/portuges.dtx b/Master/texmf-dist/source/generic/babel/portuges.dtx
new file mode 100644
index 00000000000..8c4fbf1d6f3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/portuges.dtx
@@ -0,0 +1,473 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{319}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{portuges.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{portuges}
+%\fi
+%\ProvidesFile{portuges.dtx}
+ [2005/03/31 v1.2p Portuguese support from the babel system]
+%\iffalse
+%% File `portuges.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Portuguese Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Portuguese language definition file. The Portuguese
+% words were contributed by Jose Pedro Ramalhete, (JRAMALHE@CERNVM
+% or Jose-Pedro_Ramalhete@MACMAIL).
+%
+% Arnaldo Viegas de Lima <arnaldo@VNET.IBM.COM> contributed
+% brasilian translations and suggestions for enhancements.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{portuges.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{portuges.dtx}
+%
+% \changes{portuges-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{portuges-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{portuges-1.2}{1994/02/26}{Update for \LaTeXe}
+% \changes{portuges-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{portuges-1.2g}{1995/06/04}{Enhanced support for brasilian}
+% \changes{portuges-1.2j}{1996/07/11}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{portuges-1.2j}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The Portuguese language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. Contributions were made by Jose Pedro Ramalhete
+% (\texttt{JRAMALHE@CERNVM} or
+% \texttt{Jose-Pedro\_Ramalhete@MACMAIL}) and Arnaldo Viegas de
+% Lima \texttt{arnaldo@VNET.IBM.COM}.} defines all the
+% language-specific macros for the Portuguese language as well as
+% for the Brasilian version of this language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:port-quote} an overview is given of its purpose.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position.\\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word.\\
+% |""| & like \verb="-=, but producing no hyphen sign (for
+% words that should break at some sign such as
+% ``entrada/salida.''\\
+% |"<| & for French left double quotes (similar to $<<$).\\
+% |">| & for French right double quotes (similar to $>>$).\\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word. \\
+% \end{tabular}
+% \caption{The extra definitions made by \file{portuges.ldf}}
+% \label{tab:port-quote}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{portuges-1.2j}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit\CurrentOption{captions\CurrentOption}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{portuges} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@portuges| to see whether we have to do something here. Since
+% it is possible to load this file with any of the following four
+% options to babel: \Lopt{portuges}, \Lopt{portuguese},
+% \Lopt{brazil} and \Lopt{brazilian} we also allow that the
+% hyphenation patterns are loaded under any of these four names. We
+% just have to find out which one was used.
+%
+% \changes{portuges-1.0b}{1991/10/29}{Removed use of cs{@ifundefined}}
+% \changes{portuges-1.1}{1992/02/16}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \changes{portuges-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@portuges\@undefined
+ \ifx\l@portuguese\@undefined
+ \ifx\l@brazil\@undefined
+ \ifx\l@brazilian\@undefined
+ \@nopatterns{Portuguese}
+ \adddialect\l@portuges0
+ \else
+ \let\l@portuges\l@brazilian
+ \fi
+ \else
+ \let\l@portuges\l@brazil
+ \fi
+ \else
+ \let\l@portuges\l@portuguese
+ \fi
+\fi
+% \end{macrocode}
+% By now |\l@portuges| is defined. When the language definition
+% file was loaded under a different name we make sure that the
+% hyphenation patterns can be found.
+% \begin{macrocode}
+\expandafter\ifx\csname l@\CurrentOption\endcsname\relax
+ \expandafter\let\csname l@\CurrentOption\endcsname\l@portuges
+\fi
+% \end{macrocode}
+%
+% Now we have to decide whether this language definition file was
+% loaded for Portuguese or Brasilian use. This can be done by
+% checking the contents of |\CurrentOption|. When it doesn't
+% contain either `portuges' or `portuguese' we make |\bbl@tempb|
+% empty.
+% \begin{macrocode}
+\def\bbl@tempa{portuguese}
+\ifx\CurrentOption\bbl@tempa
+ \let\bbl@tempb\@empty
+\else
+ \def\bbl@tempa{portuges}
+ \ifx\CurrentOption\bbl@tempa
+ \let\bbl@tempb\@empty
+ \else
+ \def\bbl@tempb{brazil}
+ \fi
+\fi
+\ifx\bbl@tempb\@empty
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and from)
+% the Portuguese language.
+%
+% \begin{macro}{\captionsportuges}
+% The macro |\captionsportuges| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{portuges-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{portuges-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{portuges-1.2e}{1994/11/09}{Added a few missing
+% translations}
+% \changes{portuges-1.2h}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{portuges-1.2i}{1995/11/25}{Substituted `Prova' for `Proof'}
+% \begin{macrocode}
+ \@namedef{captions\CurrentOption}{%
+ \def\prefacename{Pref\'acio}%
+ \def\refname{Refer\^encias}%
+ \def\abstractname{Resumo}%
+ \def\bibname{Bibliografia}%
+ \def\chaptername{Cap\'{\i}tulo}%
+ \def\appendixname{Ap\^endice}%
+% \end{macrocode}
+% Some discussion took place around the correct translations for
+% `Table of Contents' and `Index'. the translations differ for
+% Portuguese and Brasilian based the following history:
+% \begin{quote}
+% The whole issue is that some books without a real index at the
+% end misused the term `\'Indice' as table of contents. Then,
+% what happens is that some books apeared with `\'Indice' at the
+% begining and a `\'Indice Remissivo' at the end. Remissivo is a
+% redundant word in this case, but was introduced to make up the
+% difference. So in Brasil people started using `Sum\'ario' and
+% `\'Indice Remissivo'. In Portugal this seems not to be very
+% common, therefore we chose `\'Indice' instead of `\'Indice
+% Remissivo'.
+% \end{quote}
+% \begin{macrocode}
+ \def\contentsname{Conte\'udo}%
+ \def\listfigurename{Lista de Figuras}%
+ \def\listtablename{Lista de Tabelas}%
+ \def\indexname{\'Indice}%
+ \def\figurename{Figura}%
+ \def\tablename{Tabela}%
+ \def\partname{Parte}%
+ \def\enclname{Anexo}%
+ \def\ccname{Com c\'opia a}%
+ \def\headtoname{Para}%
+ \def\pagename{P\'agina}%
+ \def\seename{ver}%
+ \def\alsoname{ver tamb\'em}%
+% \end{macrocode}
+% An alternate term for `Proof' could be `Prova'.
+% \changes{portuges-1.2m}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{portuges-1.2p}{2003/05/23}{Substituted `Gloss\'ario' for
+% `Glossary'}
+% \begin{macrocode}
+ \def\proofname{Demonstra\c{c}\~ao}%
+ \def\glossaryname{Gloss\'ario}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateportuges}
+% The macro |\dateportuges| redefines the command |\today| to
+% produce Portuguese dates.
+% \changes{portuges-1.2k}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{portuges-1.2k}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \changes{portuges-1.2n}{2001/01/27}{Removed spurious space after
+% Dezembro}
+% \begin{macrocode}
+ \@namedef{date\CurrentOption}{%
+ \def\today{\number\day\space de\space\ifcase\month\or
+ Janeiro\or Fevereiro\or Mar\c{c}o\or Abril\or Maio\or Junho\or
+ Julho\or Agosto\or Setembro\or Outubro\or Novembro\or Dezembro%
+ \fi
+ \space de\space\number\year}}
+\else
+% \end{macrocode}
+% \end{macro}
+%
+% For the Brasilian version of these definitions we just add a
+% ``dialect''.
+% \begin{macrocode}
+ \expandafter
+ \adddialect\csname l@\CurrentOption\endcsname\l@portuges
+% \end{macrocode}
+%
+% \begin{macro}{\captionsbrazil}
+% \changes{portuges-1.2g}{1995/06/04}{The captions for brasilian and
+% portuguese are different now}
+%
+% The ``captions'' are different for both versions of the language,
+% so we define the macro |\captionsbrazil| here.
+% \changes{portuges-1.2i}{1995/11/25}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{portuges-1.2m}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+ \@namedef{captions\CurrentOption}{%
+ \def\prefacename{Pref\'acio}%
+ \def\refname{Refer\^encias}%
+ \def\abstractname{Resumo}%
+ \def\bibname{Refer\^encias Bibliogr\'aficas}%
+ \def\chaptername{Cap\'{\i}tulo}%
+ \def\appendixname{Ap\^endice}%
+ \def\contentsname{Sum\'ario}%
+ \def\listfigurename{Lista de Figuras}%
+ \def\listtablename{Lista de Tabelas}%
+ \def\indexname{\'Indice Remissivo}%
+ \def\figurename{Figura}%
+ \def\tablename{Tabela}%
+ \def\partname{Parte}%
+ \def\enclname{Anexo}%
+ \def\ccname{C\'opia para}%
+ \def\headtoname{Para}%
+ \def\pagename{P\'agina}%
+ \def\seename{veja}%
+ \def\alsoname{veja tamb\'em}%
+ \def\proofname{Demonstra\c{c}\~ao}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datebrazil}
+% The macro |\datebrazil| redefines the command
+% |\today| to produce Brasilian dates, for which the names
+% of the months are not capitalized.
+% \changes{portuges-1.2k}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{portuges-1.2k}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \changes{portuges-1.2n}{2001/01/27}{Removed spurious space after
+% dezembro}
+% \begin{macrocode}
+ \@namedef{date\CurrentOption}{%
+ \def\today{\number\day\space de\space\ifcase\month\or
+ janeiro\or fevereiro\or mar\c{c}o\or abril\or maio\or junho\or
+ julho\or agosto\or setembro\or outubro\or novembro\or dezembro%
+ \fi
+ \space de\space\number\year}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\portugeshyphenmins}
+% \changes{portuges-1.2g}{1995/06/04}{Added setting of hyphenmin
+% values}
+% Set correct values for |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{portuges-1.2m}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \changes{portuges-1.2o}{2001/02/16}{Set \cs{righthyphenmin} to 3 if
+% not provided by the pattern file.}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\thr@@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasportuges}
+% \changes{portuges-1.2g}{1995/06/04}{Added the definition of some
+% \texttt{"} shorthands}
+% \begin{macro}{\noextrasportuges}
+% The macro |\extrasportuges| will perform all the extra
+% definitions needed for the Portuguese language. The macro
+% |\noextrasportuges| is used to cancel the actions of
+% |\extrasportuges|.
+%
+% For Portuguese the \texttt{"} character is made active. This is
+% done once, later on its definition may vary. Other languages in
+% the same document may also use the \texttt{"} character for
+% shorthands; we specify that the portuguese group of shorthands
+% should be used.
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+\@namedef{extras\CurrentOption}{\languageshorthands{portuges}}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{portuges-1.2m}{1999/12/17}{Deactivate shorthands ouside of
+% Basque}
+% \begin{macrocode}
+\addto\noextrasportuges{\bbl@deactivate{"}}
+% \end{macrocode}
+% First we define access to the guillemets for quotations,
+% \changes{portuges-1.2k}{1997/04/03}{Removed empty groups after
+% guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{portuges}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{portuges}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define two shorthands to be able to specify hyphenation
+% breakpoints that behave a little different from |\-|.
+% \begin{macrocode}
+\declare@shorthand{portuges}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{portuges}{""}{\hskip\z@skip}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{portuges}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\-}
+%
+% All that is left now is the redefinition of |\-|. The new version
+% of |\-| should indicate an extra hyphenation position, while
+% allowing other hyphenation positions to be generated
+% automatically. The standard behaviour of \TeX\ in this respect is
+% very unfortunate for languages such as Dutch and German, where
+% long compound words are quite normal and all one needs is a means
+% to indicate an extra hyphenation position on top of the ones that
+% \TeX\ can generate from the hyphenation patterns.
+% \begin{macrocode}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \babel@save\-}
+\expandafter\addto\csname extras\CurrentOption\endcsname{%
+ \def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ord}
+% \changes{portuges-1.2g}{1995/06/04}{Added macro}
+% \begin{macro}{\ro}
+% \changes{portuges-1.2g}{1995/06/04}{Added macro}
+% \begin{macro}{\orda}
+% \changes{portuges-1.2g}{1995/06/04}{Added macro}
+% \begin{macro}{\ra}
+% \changes{portuges-1.2g}{1995/06/04}{Added macro}
+% We also provide an easy way to typeset ordinals, both in the male
+% (|\ord| or |\ro|) and the female (|orda| or |\ra|) form.
+% \begin{macrocode}
+\def\ord{$^{\rm o}$}
+\def\orda{$^{\rm a}$}
+\let\ro\ord\let\ra\orda
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{portuges-1.2j}{1996/11/03}{ow use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish\CurrentOption
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/portuges.ins b/Master/texmf-dist/source/generic/babel/portuges.ins
new file mode 100644
index 00000000000..3889bc8f8b2
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/portuges.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{portuges.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{portuges.ldf}{\from{portuges.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/romanian.dtx b/Master/texmf-dist/source/generic/babel/romanian.dtx
new file mode 100644
index 00000000000..88950570306
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/romanian.dtx
@@ -0,0 +1,232 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{89}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{romanian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{romanian}
+%\fi
+%\ProvidesFile{romanian.dtx}
+ [2005/03/31 v1.2l Romanian support from the babel system]
+%\iffalse
+%% File `romanian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Romanian Language Definition File
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Romanian language definition file. A contribution
+% was made by Umstatter Horst (hhu at cernvm.cern.ch) and Robert
+% Juhasz (robertj at uni-paderborn.de)
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{romanian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \GetFileInfo{romanian.dtx}
+%
+% \changes{romanian-1.0a}{1991/07/15}{Renamed babel.sty in babel.com}
+% \changes{romanian-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{romanian-1.2}{1994/02/27}{Update for LaTeX2e}
+% \changes{romanian-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of babel.def}
+% \changes{romanian-1.2e}{1995/05/25}{Updated for babel release 3.5}
+% \changes{romanian-1.2h}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Romanian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Umstatter Horst
+% (\texttt{hhu@cernvm.cern.ch}).} defines all the
+% language-specific macros for the Romanian language.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{romanian-1.2h}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{romanian}\captionsromanian
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{romanian} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@romanian| to see whether we have to do something here.
+%
+% \changes{romanian-1.0b}{1991/10/29}{Removed use of
+% \cs{@ifundefined}}
+% \changes{romanian-1.1}{1992/02/16}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \changes{romanian-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@romanian\@undefined
+ \@nopatterns{Romanian}
+ \adddialect\l@romanian0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Romanian language.
+%
+% \begin{macro}{\captionsromanian}
+% The macro |\captionsromanian| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \changes{romanian-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{romanian-1.1}{1992/02/17}{Translation errors found by
+% Robert Juhasz fixed}
+% \changes{romanian-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{romanian-1.2f}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{romanian-1.2g}{1995/11/10}{Added translation of `Proof'}
+% \changes{romanian-1.2k}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{romanian-1.2l}{2003/06/10}{Added translation for Glossary}
+% \begin{macrocode}ls
+\addto\captionsromanian{%
+ \def\prefacename{Prefa\c{t}\u{a}}%
+ \def\refname{Bibliografie}%
+ \def\abstractname{Rezumat}%
+ \def\bibname{Bibliografie}%
+ \def\chaptername{Capitolul}%
+ \def\appendixname{Anexa}%
+ \def\contentsname{Cuprins}%
+ \def\listfigurename{List\u{a} de figuri}%
+ \def\listtablename{List\u{a} de tabele}%
+ \def\indexname{Glosar}%
+ \def\figurename{Figura}% % sau Plan\c{s}a
+ \def\tablename{Tabela}%
+ \def\partname{Partea}%
+ \def\enclname{Anex\u{a}}% % sau Anexe
+ \def\ccname{Copie}%
+ \def\headtoname{Pentru}%
+ \def\pagename{Pagina}%
+ \def\seename{Vezi}%
+ \def\alsoname{Vezi de asemenea}%
+ \def\proofname{Demonstra\c{t}ie} %
+ \def\glossaryname{Glosar}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateromanian}
+% The macro |\dateromanian| redefines the command |\today| to
+% produce Romanian dates.
+% \changes{romanian-1.1}{1992/02/17}{Translation errors found by Robert
+% Juhasz fixed}
+% \changes{romanian-1.2i}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{romanian-1.2i}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\dateromanian{%
+ \def\today{\number\day~\ifcase\month\or
+ ianuarie\or februarie\or martie\or aprilie\or mai\or
+ iunie\or iulie\or august\or septembrie\or octombrie\or
+ noiembrie\or decembrie\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasromanian}
+% \begin{macro}{\noextrasromanian}
+% The macro |\extrasromanian| will perform all the extra
+% definitions needed for the Romanian language. The macro
+% |\noextrasromanian| is used to cancel the actions of
+% |\extrasromanian| For the moment these macros are empty but they
+% are defined for compatibility with the other language definition
+% files.
+%
+% \begin{macrocode}
+\addto\extrasromanian{}
+\addto\noextrasromanian{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{romanian-1.2h}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{romanian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/romanian.ins b/Master/texmf-dist/source/generic/babel/romanian.ins
new file mode 100644
index 00000000000..749b4561ea7
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/romanian.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{romanian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{romanian.ldf}{\from{romanian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/russianb.dtx b/Master/texmf-dist/source/generic/babel/russianb.dtx
new file mode 100644
index 00000000000..0cb758441aa
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/russianb.dtx
@@ -0,0 +1,1238 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{1461}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{russianb.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{russianb}
+ [2005/03/29 v1.1r Russian support from the babel system]
+%
+%% File `russianb.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Russianb Language Definition File
+%% Copyright (C) 1995 - 2005
+%% by Olga Lapko cyrtug at mir.msk.su
+%% Johannes Braams, TeXniek
+%
+%% Adapted to the new T2 and X2 Cyrillic encodings
+%% by Vladimir Volovich TeX at vvv.vsu.ru
+%% Werner Lemberg wl at gnu.org
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand\TeXhax{\TeX hax}
+\newcommand\babel{\textsf{babel}}
+\newcommand\langvar{$\langle \it lang \rangle$}
+\newcommand\note[1]{}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\newcommand\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{russianb.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{russianb.dtx}
+%
+% \changes{russianb-1.1c}{1996/07/11}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{russianb-1.1d}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+% \changes{russianb-1.1k}{1999/08/19}{replaced all \cs{penalty}\cs{@M}
+% with \cs{nobreak}}
+%
+% \section{The Russian language}
+%
+% The file \file{\filename}\footnote{The file described in this section
+% has version number \fileversion\ and was last revised on \filedate.
+% This file was initially derived from the original version of
+% \file{german.sty}, which has some definitions for Russian. Later the
+% definitions from \file{russian.sty} version 1.0b (for \LaTeX\ 2.09),
+% \file{russian.sty} version v2.5c (for \LaTeXe) and \file{francais.sty}
+% version 4.5c and \file{germanb.sty} version 2.5c were added.} defines
+% all the language-specific macros for the Russian language. It needs the
+% file \file{cyrcod} for success documentation with Russian encodings
+% (see below).
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:russian-quote} an overview is given of its purpose.
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Added definitions of Cyrillic emdash stuff and thinspace}
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |"---| & Cyrillic emdash in plain text. \\
+% |"--~| & Cyrillic emdash in compound names (surnames). \\
+% |"--*| & Cyrillic emdash for denoting direct speech. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|
+% or some other signs as ``disable/enable''). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |",| & thinspace for initials with a breakpoint
+% in following surname. \\
+% |"`| & for German left double quotes
+% (looks like ,\kern-0.08em,). \\
+% |"'| & for German right double quotes (looks like ``). \\%''
+% |"<| & for French left double quotes (looks like $<\!\!<$). \\
+% |">| & for French right double quotes (looks like $>\!\!>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{russianb}}\label{tab:russian-quote}
+% \end{center}
+% \end{table}
+%
+% The quotes in table~\ref{tab:russian-quote} can also be typeset by
+% using the commands in table~\ref{tab:rmore-quote}.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |\cdash---| & Cyrillic emdash in plain text. \\
+% |\cdash--~| & Cyrillic emdash in compound names (surnames). \\
+% |\cdash--*| & Cyrillic emdash for denoting direct speech. \\
+% |\glqq| & for German left double quotes
+% (looks like ,\kern-0.08em,). \\
+% |\grqq| & for German right double quotes (looks like ``). \\%''
+% |\flqq| & for French left double quotes (looks like $<\!\!<$). \\
+% |\frqq| & for French right double quotes (looks like $>\!\!>$). \\
+% |\dq| & the original quotes character (|"|). \\
+% \end{tabular}
+% \caption{More commands which produce quotes, defined
+% by \babel}\label{tab:rmore-quote}
+% \end{center}
+% \end{table}
+%
+% The French quotes are also available as ligatures `|<<|' and `|>>|' in
+% 8-bit Cyrillic font encodings (\texttt{LCY}, \texttt{X2}, \texttt{T2*})
+% and as `|<|' and `|>|' characters in 7-bit Cyrillic font encodings
+% (\texttt{OT2} and \texttt{LWN}).
+%
+% The quotation marks traditionally used in Russian were borrowed from
+% other languages (e.g., French and German) so they keep their original
+% names.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is loaded
+% more than once, checking the category code of the \texttt{@} sign, etc.
+%
+% \changes{russianb-1.1d}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \changes{russianb-1.1e}{1996/12/29}{Added closing brace to second
+% argument of \cs{LdfInit}}
+% \begin{macrocode}
+%<*code>
+\LdfInit{russian}{captionsrussian}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{russianb} will be an `unknown' language, in which case
+% we have to make it known. So we check for the existence of |\l@russian|
+% to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@russian\@undefined
+ \@nopatterns{Russian}
+ \adddialect\l@russian0
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\latinencoding}
+%
+% We need to know the encoding for text that is supposed to be which is
+% active at the end of the \babel\ package. If the \pkg{fontenc} package
+% is loaded later, then\ldots too bad!
+%
+% \begin{macrocode}
+\let\latinencoding\cf@encoding
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The user may choose between different available Cyrillic
+% encodings---e.g., \texttt{X2}, \texttt{LCY}, or \texttt{LWN}.\@
+% Hopefully, \texttt{X2} will eventually replace the two latter encodings
+% (\texttt{LCY} and \texttt{LWN}).\@ If the user wants to use another
+% font encoding than the default (\texttt{T2A}), he has to load the
+% corresponding file \emph{before} \file{russianb.sty}. This may be done
+% in the following way:
+%
+% \begin{verbatim}
+% % override the default X2 encoding used in Babel
+% \usepackage[LCY,OT1]{fontenc}
+% \usepackage[english,russian]{babel}
+% \end{verbatim}
+% \unskip
+%
+% Note: for the Russian language, the \texttt{T2A} encoding is better than
+% \texttt{X2}, because \texttt{X2} does not contain Latin letters, and
+% users should be very careful to switch the language every time they
+% want to typeset a Latin word inside a Russian phrase or vice versa.
+%
+% We parse the |\cdp@list| containing the encodings known to \LaTeX\ in
+% the order they were loaded. We set the |\cyrillicencoding| to the
+% \emph{last} loaded encoding in the list of supported Cyrillic
+% encodings: \texttt{OT2}, \texttt{LWN}, \texttt{LCY}, \texttt{X2},
+% \texttt{T2C}, \texttt{T2B}, \texttt{T2A}, if any.
+%
+% \begin{macrocode}
+\def\reserved@a#1#2{%
+ \edef\reserved@b{#1}%
+ \edef\reserved@c{#2}%
+ \ifx\reserved@b\reserved@c
+ \let\cyrillicencoding\reserved@c
+ \fi}
+\def\cdp@elt#1#2#3#4{%
+ \reserved@a{#1}{OT2}%
+ \reserved@a{#1}{LWN}%
+ \reserved@a{#1}{LCY}%
+ \reserved@a{#1}{X2}%
+ \reserved@a{#1}{T2C}%
+ \reserved@a{#1}{T2B}%
+ \reserved@a{#1}{T2A}}
+\cdp@list
+% \end{macrocode}
+%
+% Now, if |\cyrillicencoding| is undefined, then the user did not load
+% any of supported encodings. So, we have to set |\cyrillicencoding| to
+% some default value. We test the presence of the encoding definition
+% files in the order from less preferable to more preferable encodings.
+% We use the lowercase names (i.e., \file{lcyenc.def} instead of
+% \file{LCYenc.def}).
+%
+% \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+ \IfFileExists{ot2enc.def}{\def\cyrillicencoding{OT2}}\relax
+ \IfFileExists{lwnenc.def}{\def\cyrillicencoding{LWN}}\relax
+ \IfFileExists{lcyenc.def}{\def\cyrillicencoding{LCY}}\relax
+ \IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax
+ \IfFileExists{t2cenc.def}{\def\cyrillicencoding{T2C}}\relax
+ \IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax
+ \IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax
+% \end{macrocode}
+%
+% If |\cyrillicencoding| is still undefined, then the user seems not to
+% have a properly installed distribution. A fatal error.
+%
+% \begin{macrocode}
+ \ifx\cyrillicencoding\undefined
+ \PackageError{babel}%
+ {No Cyrillic encoding definition files were found}%
+ {Your installation is incomplete.\MessageBreak
+ You need at least one of the following files:\MessageBreak
+ \space\space
+ x2enc.def, t2aenc.def, t2benc.def, t2cenc.def,\MessageBreak
+ \space\space
+ lcyenc.def, lwnenc.def, ot2enc.def.}%
+ \else
+% \end{macrocode}
+%
+% We avoid |\usepackage[\cyrillicencoding]{fontenc}| because we don't
+% want to force the switch of |\encodingdefault|.
+%
+% \begin{macrocode}
+ \lowercase
+ \expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{verbatim}
+% \PackageInfo{babel}
+% {Using `\cyrillicencoding' as a default Cyrillic encoding}%
+% \end{verbatim}
+% \unskip
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Russian}{%
+ \fontencoding\cyrillicencoding\selectfont
+ \let\encodingdefault\cyrillicencoding
+ \expandafter\set@hyphenmins\russianhyphenmins
+ \language\l@russian}%
+\DeclareRobustCommand{\English}{%
+ \fontencoding\latinencoding\selectfont
+ \let\encodingdefault\latinencoding
+ \expandafter\set@hyphenmins\englishhyphenmins
+ \language\l@english}%
+\let\Rus\Russian
+\let\Eng\English
+\let\cyrillictext\Russian
+\let\cyr\Russian
+% \end{macrocode}
+%
+% Since the \texttt{X2} encoding does not contain Latin letters, we
+% should make some redefinitions of \LaTeX\ macros which implicitly
+% produce Latin letters.
+%
+% \begin{macrocode}
+\expandafter\ifx\csname T@X2\endcsname\relax\else
+% \end{macrocode}
+%
+% We put |\latinencoding| in braces to avoid problems with
+% |\@alph| inside minipages (e.g., footnotes inside minipages) where
+% |\@alph| is expanded and we get for example `|\fontencoding OT1|'
+% (|\fontencoding| is robust).
+%
+% \begin{macrocode}
+ \def\@alph#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or
+ a\or b\or c\or d\or e\or f\or g\or h\or
+ i\or j\or k\or l\or m\or n\or o\or p\or
+ q\or r\or s\or t\or u\or v\or w\or x\or
+ y\or z\else\@ctrerr\fi}}%
+ \def\@Alph#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or
+ A\or B\or C\or D\or E\or F\or G\or H\or
+ I\or J\or K\or L\or M\or N\or O\or P\or
+ Q\or R\or S\or T\or U\or V\or W\or X\or
+ Y\or Z\else\@ctrerr\fi}}%
+% \end{macrocode}
+%
+% Unfortunately, the commands |\AA| and |\aa| are not encoding dependent
+% in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are defined as |\r{A}| and
+% |\r{a}|. This leads to unpredictable results when the font encoding
+% does not contain the Latin letters `A' and `a' (like \texttt{X2}).
+%
+% \begin{macrocode}
+ \DeclareTextSymbolDefault{\AA}{OT1}
+ \DeclareTextSymbolDefault{\aa}{OT1}
+ \DeclareTextCommand{\aa}{OT1}{\r a}
+ \DeclareTextCommand{\AA}{OT1}{\r A}
+\fi
+% \end{macrocode}
+%
+% The following block redefines the character class of uppercase Greek
+% letters and some accents, if it is equal to 7 (variable family), to
+% avoid incorrect results if the font encoding in some math family does
+% not contain these characters in places of OT1 encoding. The code was
+% taken from |amsmath.dtx|. See comments and further explanation there.
+%
+% \changes{russianb-1.1n}{2001/02/21}{As this code generates a
+% textfont 7 error it is commented out for now.}
+% \begin{macrocode}
+% \begingroup\catcode`\"=12
+% % uppercase greek letters:
+% \def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax
+% "0000\@nil#1}
+% \def\@tempb#1"#2#3#4#5#6\@nil#7{%
+% \ifnum"#2=7 \count@"1#3#4#5\relax
+% \ifnum\count@<"1000 \else \global\mathchardef#7="0#3#4#5\relax \fi
+% \fi}
+% \@tempa\Gamma\@tempa\Delta\@tempa\Theta\@tempa\Lambda\@tempa\Xi
+% \@tempa\Pi\@tempa\Sigma\@tempa\Upsilon\@tempa\Phi\@tempa\Psi
+% \@tempa\Omega
+% % some accents:
+% \def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent}
+% \expandafter\@tempa\hat\relax\relax\@nil
+% \ifx\@tempb\@tempc
+% \def\@tempa#1\@nil{#1}%
+% \def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}%
+% \def\do#1"#2{}
+% \def\@tempd#1{\expandafter\@tempb#1\@nil
+% \ifnum\@tempc>"FFF
+% \xdef#1{\mathaccent"\expandafter\do\meaning\@tempc\space}%
+% \fi}
+% \@tempd\hat\@tempd\check\@tempd\tilde\@tempd\acute\@tempd\grave
+% \@tempd\dot\@tempd\ddot\@tempd\breve\@tempd\bar
+% \fi
+% \endgroup
+% \end{macrocode}
+%
+% The user should use the \pkg{inputenc} package when any 8-bit Cyrillic
+% font encoding is used, selecting one of the Cyrillic input encodings.
+% We do not assume any default input encoding, so the user should
+% explicitly call the \pkg{inputenc} package by |\usepackage{inputenc}|.
+% We also removed |\AtBeginDocument|, so \pkg{inputenc} should be used
+% before \babel.
+%
+% \changes{russianb-1.1l}{1999/08/27}{Made not using inputenc a
+% warning instead of an error}
+% \begin{macrocode}
+\@ifpackageloaded{inputenc}{}{%
+ \def\reserved@a{LWN}%
+ \ifx\reserved@a\cyrillicencoding\else
+ \def\reserved@a{OT2}%
+ \ifx\reserved@a\cyrillicencoding\else
+ \PackageWarning{babel}%
+ {No input encoding specified for Russian language}
+ \fi\fi}
+% \end{macrocode}
+%
+% Now we define two commands that offer the possibility to switch between
+% Cyrillic and Roman encodings.
+%
+% \begin{macro}{\cyrillictext}
+% \begin{macro}{\latintext}
+%
+% The command |\cyrillictext| will switch from Latin font encoding to the
+% Cyrillic font encoding, the command |\latintext| switches back. This
+% assumes that the `normal' font encoding is a Latin one. These commands
+% are \emph{declarations}, for shorter peaces of text the commands
+% |\textlatin| and |\textcyrillic| can be used.
+%
+% \changes{russianb-1.1o}{2003/10/12}{\cs{latintext} is already
+% defined by the core of \babel}
+% \begin{macrocode}
+%\DeclareRobustCommand{\latintext}{%
+% \fontencoding{\latinencoding}\selectfont
+% \def\encodingdefault{\latinencoding}}
+\let\lat\latintext
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textcyrillic}
+% \begin{macro}{\textlatin}
+%
+% These commands take an argument which is then typeset using the
+% requested font encoding.
+% \changes{russianb-1.1o}{2003/10/12}{\cs{textlatin} already defined
+% by the core of \babel}
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+%\DeclareTextFontCommand{\textlatin}{\latintext}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% We make the \TeX
+% \begin{macrocode}
+%\ifx\ltxTeX\undefined\let\ltxTeX\TeX\fi
+%\ProvideTextCommandDefault{\TeX}{\textlatin{\ltxTeX}}
+% \end{macrocode}
+% and \LaTeX\ logos encoding independent.
+% \begin{macrocode}
+%\ifx\ltxLaTeX\undefined\let\ltxLaTeX\LaTeX\fi
+%\ProvideTextCommandDefault{\LaTeX}{\textlatin{\ltxLaTeX}}
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Russian language.
+%
+% \begin{macro}{\captionsrussian}
+%
+% The macro |\captionsrussian| defines all strings used in the four
+% standard document classes provided with \LaTeX. The two commands |\cyr|
+% and |\lat| activate Cyrillic resp.\ Latin encoding.
+%
+% \begin{macrocode}
+\addto\captionsrussian{%
+% FIXME: Where is the \prefacename used?
+ \def\prefacename{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyri\cyrs\cyrl\cyro\cyrv\cyri\cyre}}%
+% {\cyr\CYRV\cyrv\cyre\cyrd\cyre\cyrn\cyri\cyre}}%
+ \def\refname{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery}}%
+% \def\refname{%
+% {\cyr\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya}}%
+ \def\bibname{%
+ {\cyr\CYRL\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+% \def\bibname{%
+% {\cyr\CYRB\cyri\cyrb\cyrl\cyri\cyro
+% \cyrg\cyrr\cyra\cyrf\cyri\cyrya}}%
+% for reports according to GOST:
+% \def\bibname{%
+% {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+% \ \cyri\cyrs\cyrp\cyro\cyrl\cyrsftsn\cyrz\cyro\cyrv\cyra\cyrn
+% \cyrn\cyrery\cyrh\ \cyri\cyrs\cyrt\cyro\cyrch\cyrn\cyri
+% \cyrk\cyro\cyrv}}%
+ \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+% \@ifundefined{chapter}{}{%
+% \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}}%
+ \def\appendixname{%
+ {\cyr\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre}}%
+% \end{macrocode}
+%
+% There are two names for the Table of Contents that are used in Russian
+% publications. For books (and reports) the second variant is
+% appropriate, but for proceedings the first variant is preferred:
+%
+% \begin{macrocode}
+ \@ifundefined{thechapter}%
+ {\def\contentsname{%
+ {\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}}}%
+ {\def\contentsname{%
+ {\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre}}}%
+ \def\listfigurename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyrishrt}}%
+% \def\listfigurename{%
+% {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+% \ \cyrr\cyri\cyrs\cyru\cyrn\cyrk\cyro\cyrv}}%
+ \def\listtablename{%
+ {\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk
+ \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc}}%
+ \def\indexname{%
+ {\cyr\CYRP\cyrr\cyre\cyrd\cyrm\cyre\cyrt\cyrn\cyrery\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\authorname{%
+ {\cyr\CYRI\cyrm\cyre\cyrn\cyrn\cyro\cyrishrt
+ \ \cyru\cyrk\cyra\cyrz\cyra\cyrt\cyre\cyrl\cyrsftsn}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyrsftsn}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl.}}%
+ \def\ccname{{\cyr\cyri\cyrs\cyrh.}}%
+% \def\ccname{{\cyr\cyri\cyrz}}%
+ \def\headtoname{{\cyr\cyrv\cyrh.}}%
+% \def\headtoname{{\cyr\cyrv}}%
+ \def\pagename{{\cyr\cyrs.}}%
+% \def\pagename{{\cyr\cyrs\cyrt\cyrr.}}%
+ \def\seename{{\cyr\cyrs\cyrm.}}%
+ \def\alsoname{{\cyr\cyrs\cyrm.\ \cyrt\cyra\cyrk\cyrzh\cyre}}%
+% \end{macrocode}
+% \changes{russianb-1.1m}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+ \def\proofname{{\cyr\CYRD\cyro\cyrk\cyra\cyrz\cyra\cyrt
+ \cyre\cyrl\cyrsftsn\cyrs\cyrt\cyrv\cyro}}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\daterussian}
+%
+% The macro |\daterussian| redefines the command |\today| to produce
+% Russian dates.
+%
+% \begin{macrocode}
+\def\daterussian{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
+ \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
+ \cyrm\cyra\cyrr\cyrt\cyra\or
+ \cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
+ \cyrm\cyra\cyrya\or
+ \cyri\cyryu\cyrn\cyrya\or
+ \cyri\cyryu\cyrl\cyrya\or
+ \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
+ \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
+ \cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
+ \cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
+ \ \number\year~\cyrg.}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\extrasrussian}
+%
+% The macro |\extrasrussian| will perform all the extra definitions
+% needed for the Russian language. The macro |\noextrasrussian| is used
+% to cancel the actions of |\extrasrussian|.
+%
+% \changes{russianb-1.1b}{1996/02/20}{Added switch to \texttt{LWN}
+% encoding}
+%
+% The first action we define is to switch on the selected Cyrillic
+% encoding whenever we enter `russian'.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\cyrillictext}
+% \end{macrocode}
+%
+% When the encoding definition file was processed by \LaTeX\ the current
+% font encoding is stored in |\latinencoding|, assuming that \LaTeX\ uses
+% \texttt{T1} or \texttt{OT1} as default. Therefore we switch back to
+% |\latinencoding| whenever the Russian language is no longer `active'.
+%
+% \begin{macrocode}
+\addto\noextrasrussian{\latintext}
+% \end{macrocode}
+%
+% \begin{macro}{\verbatim@font}
+%
+% \changes{russianb-1.1b}{1996/02/20}{Added changing of
+% \cs{verbatim@font}}
+%
+% In order to get both Latin and Cyrillic letters in verbatim text we
+% need to change the definition of an internal \LaTeX\ command somewhat:
+%
+% \begin{macrocode}
+%\def\verbatim@font{%
+% \let\encodingdefault\latinencoding
+% \normalfont\ttfamily
+% \expandafter\def\csname\cyrillicencoding-cmd\endcsname##1##2{%
+% \ifx\protect\@typeset@protect
+% \begingroup\UseTextSymbol\cyrillicencoding##1\endgroup
+% \else\noexpand##1\fi}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The category code of the characters `\texttt{:}', `\texttt{;}',
+% `\texttt{!}', and `\texttt{?}' is made |\active| to insert a little
+% white space.
+%
+% For Russian (as well as for German) the \texttt{"} character also is
+% made active.
+%
+% Note: It is \emph{very} questionable whether the Russian typesetting
+% tradition requires additional spacing before those punctuation signs.
+% Therefore, we make the corresponding code optional. If you need it,
+% then define the \texttt{frenchpunct} docstrip option in
+% \file{babel.ins}.
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Added a hook to insert space
+% or not before `double punctuation' (from frenchb).}
+%
+% Borrowed from french.
+% Some users dislike automatic insertion of a space before
+% `double punctuation', and prefer to decide themselves whether a
+% space should be added or not; so a hook |\NoAutoSpaceBeforeFDP|
+% is provided: if this command is added (in file |russianb.cfg|, or
+% anywhere in a document) |russianb| will respect your typing, and
+% introduce a suitable space before `double punctuation' \emph{if
+% and only if} a space is typed in the source file before those
+% signs.
+%
+% The command |\AutoSpaceBeforeFDP| switches back to the
+% default behavior of |russianb|.
+%
+% \changes{russianb-1.1a}{1995/03/07}{Use the new mechanism for dealing
+% with active characters}
+%
+% \begin{macrocode}
+%<*frenchpunct>
+\initiate@active@char{:}
+\initiate@active@char{;}
+%</frenchpunct>
+%<*frenchpunct|spanishligs>
+\initiate@active@char{!}
+\initiate@active@char{?}
+%</frenchpunct|spanishligs>
+\initiate@active@char{"}
+% \end{macrocode}
+%
+% The code above is necessary because we need extra active characters.
+% The character |"| is used as indicated in
+% table~\ref{tab:russian-quote}.
+%
+% We specify that the Russian group of shorthands should be used.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\languageshorthands{russian}}
+% \end{macrocode}
+%
+% These characters are `turned on' once, later their definition may
+% vary.
+%
+% \begin{macrocode}
+\addto\extrasrussian{%
+%<frenchpunct> \bbl@activate{:}\bbl@activate{;}%
+%<frenchpunct|spanishligs> \bbl@activate{!}\bbl@activate{?}%
+ \bbl@activate{"}}
+\addto\noextrasrussian{%
+%<frenchpunct> \bbl@deactivate{:}\bbl@deactivate{;}%
+%<frenchpunct|spanishligs> \bbl@deactivate{!}\bbl@deactivate{?}%
+ \bbl@deactivate{"}}
+% \end{macrocode}
+%
+% The \texttt{X2} and \texttt{T2*} encodings do not contain
+% |spanish_shriek| and |spanish_query| symbols; as a consequence, the
+% ligatures `|?`|' and `|!`|' do not work with them (these characters are
+% useless for Cyrillic texts anyway). But we define the shorthands to
+% emulate these ligatures (optionally).
+%
+% We do not use |\latinencoding| here (but instead explicitly use
+% \texttt{OT1}) because the user may choose \texttt{T2A} to be the primary
+% encoding, but it does not contain these characters.
+%
+% \begin{macrocode}
+%<*spanishligs>
+\declare@shorthand{russian}{?`}{\UseTextSymbol{OT1}\textquestiondown}
+\declare@shorthand{russian}{!`}{\UseTextSymbol{OT1}\textexclamdown}
+%</spanishligs>
+% \end{macrocode}
+%
+% \begin{macro}{\russian@sh@;@}
+% \begin{macro}{\russian@sh@:@}
+% \begin{macro}{\russian@sh@!@}
+% \begin{macro}{\russian@sh@?@}
+%
+% We have to reduce the amount of white space before \texttt{;},
+% \texttt{:} and \texttt{!}. This should only happen in horizontal mode,
+% hence the test with |\ifhmode|.
+%
+% \changes{russianb-1.1a}{1995/07/04}{Use new \cs{DefineActiveNoArg}}
+% \changes{russianb-1.1a}{1995/07/04}{Use the more general mechanism of
+% \cs{declare@shorthand}}
+% \changes{russianb-1.1b}{1996/02/08}{Updated to reflect the latest
+% french definitions}
+%
+% \begin{macrocode}
+%<*frenchpunct>
+\declare@shorthand{russian}{;}{%
+ \ifhmode
+% \end{macrocode}
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% \thinspace changed to kern.1em (space bit thinner)}
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Added a hook to insert space
+% or not before `double punctuation' (from frenchb).}
+%
+% In horizontal mode we check for the presence of a `space', `unskip' if
+% it exists and place a |0.1em| kerning.
+%
+% \begin{macrocode}
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+% \end{macrocode}
+% If no space has been typed, we add |\FDP@thinspace|
+% which will be
+% defined, up to the user's wishes, as an automatic added
+% thinspace, or as |\@empty|.
+%
+% \begin{macrocode}
+ \FDP@thinspace
+ \fi
+ \fi
+% \end{macrocode}
+%
+% Now we can insert a `|;|' character.
+%
+% \begin{macrocode}
+ \string;}
+% \end{macrocode}
+%
+% The other definitions are very similar.
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{:}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string:}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{!}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string!}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{?}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string?}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Added a hook to insert space
+% or not before `double punctuation' (from frenchb).}
+% \begin{macro}{\AutoSpaceBeforeFDP}
+% \begin{macro}{\NoAutoSpaceBeforeFDP}
+% \begin{macro}{\FDP@thinspace}
+% |\FDP@thinspace| is defined as unbreakable
+% spaces if |\AutoSpaceBeforeFDP| is activated or as |\@empty| if
+% |\NoAutoSpaceBeforeFDP| is in use.
+% The default is |\AutoSpaceBeforeFDP|.
+% \begin{macrocode}
+\def\AutoSpaceBeforeFDP{%
+ \def\FDP@thinspace{\nobreak\kern.1em}}
+\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty}
+\AutoSpaceBeforeFDP
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FDPon}
+% \begin{macro}{\FDPoff}
+% \changes{russianb-1.1f}{1998/06/26}{One more chance to avoid
+% spaces before double punctuation}
+%
+% The next macros allow to switch on/off activeness of double
+% punctuation signs.
+%
+% \begin{macrocode}
+\def\FDPon{\bbl@activate{:}%
+ \bbl@activate{;}%
+ \bbl@activate{?}%
+ \bbl@activate{!}}
+\def\FDPoff{\bbl@deactivate{:}%
+ \bbl@deactivate{;}%
+ \bbl@deactivate{?}%
+ \bbl@deactivate{!}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\system@sh@:@}
+% \begin{macro}{\system@sh@!@}
+% \begin{macro}{\system@sh@?@}
+% \begin{macro}{\system@sh@;@}
+%
+% \changes{russianb-1.1a}{1995/07/04}{Added system level shorthands}
+%
+% When the active characters appear in an environment where their
+% Russian behaviour is not wanted they should give an `expected'
+% result. Therefore we define shorthands at system level as well.
+%
+% \begin{macrocode}
+\declare@shorthand{system}{:}{\string:}
+\declare@shorthand{system}{;}{\string;}
+%</frenchpunct>
+%<*frenchpunct&!spanishligs>
+\declare@shorthand{system}{!}{\string!}
+\declare@shorthand{system}{?}{\string?}
+%</frenchpunct&!spanishligs>
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% To be able to define the function of `|"|', we first define a couple of
+% `support' macros.
+%
+% \begin{macro}{\dq}
+%
+% We save the original double quote character in |\dq| to keep it
+% available, the math accent |\"| can now be typed as `|"|'.
+%
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\reserved@a
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{russianb-1.1a}{1995/07/04}{Use \cs{ddot} instead of
+% \cs{@MATHUMLAUT}}
+%
+% Now we can define the doublequote macros: german and french quotes.
+% We use definitions of these quotes made in babel.sty.
+% The french quotes are contained in the \texttt{T2*} encodings.
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{"`}{\glqq}
+\declare@shorthand{russian}{"'}{\grqq}
+\declare@shorthand{russian}{"<}{\flqq}
+\declare@shorthand{russian}{">}{\frqq}
+% \end{macrocode}
+%
+% Some additional commands:
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{""}{\hskip\z@skip}
+\declare@shorthand{russian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{russian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{russian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+% \end{macrocode}
+%
+% The next two macros for |"-| and |"---| are somewhat different.
+% We must check whether the second token is a hyphen character:
+%
+% \begin{macrocode}
+\declare@shorthand{russian}{"-}{%
+% \end{macrocode}
+%
+% If the next token is `|-|', we typeset an emdash, otherwise a hyphen
+% sign:
+%
+% \begin{macrocode}
+ \def\russian@sh@tmp{%
+ \if\russian@sh@next-\expandafter\russian@sh@emdash
+ \else\expandafter\russian@sh@hyphen\fi
+ }%
+% \end{macrocode}
+%
+% \TeX\ looks for the next token after the first `|-|': the meaning of
+% this token is written to |\russian@sh@next| and |\russian@sh@tmp| is
+% called.
+%
+% \begin{macrocode}
+ \futurelet\russian@sh@next\russian@sh@tmp}
+% \end{macrocode}
+%
+% Here are the definitions of hyphen and emdash. First the hyphen:
+%
+% \begin{macrocode}
+\def\russian@sh@hyphen{%
+ \nobreak\-\bbl@allowhyphens}
+% \end{macrocode}
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Rearranging of cyrillic emdash stuff}
+%
+% For the emdash definition, there are the two parameters: we must `eat'
+% two last hyphen signs of our emdash\dots :
+% \begin{macrocode}
+\def\russian@sh@emdash#1#2{\cdash-#1#2}
+% \end{macrocode}
+% \begin{macro}{\cdash}
+% \dots\ these two parameters are useful for another macro:
+% |\cdash|:
+% \begin{macrocode}
+%\ifx\cdash\undefined % should be defined earlier
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}
+% \end{macrocode}
+% second parameter (or third for |\cdash|) shows what kind of emdash
+% to create in next step
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"---| & ordinary (plain) Cyrillic emdash inside text:
+% an unbreakable thinspace will be inserted before only in case of
+% a \textit{space} before the dash (it is necessary for dashes after
+% display maths formulae: there could be lists, enumerations etc.\
+% started with ``--- where $a$ is ...'' i.e., the dash starts a line).
+% (Firstly there were planned rather soft rules for user: he may put
+% a space before the dash or not. But it is difficult to place this
+% thinspace automatically, i.e., by checking modes because after
+% display formulae \TeX{} uses horizontal mode. Maybe there is a
+% misunderstanding? Maybe there is another way?) After a dash
+% a breakable thinspace is always placed; \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+% What is more grammatically: .2em or .2\fontdimen6\font ?
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+ \cyrdash\hskip.2em\ignorespaces}%
+% \end{macrocode}
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--~| & emdash in compound names or surnames
+% (like Mendeleev--Klapeiron); this dash has no space characters
+% around; after the dash some space is added
+% |\exhyphenalty| \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+% \end{macrocode}
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--*| & for denoting direct speech (a space like |\enskip|
+% must follow the emdash); \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+%\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cyrdash}
+% Finally the macro for ``body'' of the Cyrillic emdash.
+% The |\cyrdash| macro will be defined in case this macro hasn't been
+% defined in a fontenc file. For T2* fonts, cyrdash will be placed in
+% the code of the English emdash thus it uses ligature |---|.
+% \begin{macrocode}
+% Is there an IF necessary?
+\ifx\cyrdash\undefined
+ \def\cyrdash{\hbox to.8em{--\hss--}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Add macro for thinspace between initials}
+%
+% Here a really new macro---to place thinspace between initials.
+% This macro used instead of |\,| allows hyphenation in the following
+% surname.
+%
+% \changes{russianb-1.1r}{2004/11/21}{Removed the commanet character
+% before the next code line, see R3669}
+% \begin{macrocode}
+\declare@shorthand{russian}{",}{\nobreak\hskip.2em\ignorespaces}
+% \end{macrocode}
+%
+% \changes{russianb-1.1f}{1998/06/26}{%
+% Add commands for switch on/off
+% doublequote activeness. Borrowed from german.}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% All that's left to do now is to define a couple of commands
+% for |"|.
+% \begin{macrocode}
+\def\mdqon{\bbl@activate{"}}
+\def\mdqoff{\bbl@deactivate{"}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The Russian hyphenation patterns can be used with |\lefthyphenmin|
+% and |\righthyphenmin| set to~2.
+%
+% \changes{russianb-1.1a}{1995/07/04}{use \cs{russianhyphenmins} to
+% store the correct values}
+% \changes{russianb-1.1m}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% temporary hack:
+\ifx\englishhyphenmins\undefined
+ \def\englishhyphenmins{\tw@\thr@@}
+\fi
+% \end{macrocode}
+%
+% Now the action |\extrasrussian| has to execute is to make sure that the
+% command |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasrussian| will switch it off again.
+%
+% \begin{macrocode}
+\addto\extrasrussian{\bbl@frenchspacing}
+\addto\noextrasrussian{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Next we add a new enumeration style for Russian manuscripts with
+% Cyrillic letters, and later on we define some math operator names in
+% accordance with Russian typesetting traditions.
+%
+% \begin{macro}{\Asbuk}
+%
+% We begin by defining |\Asbuk| which works like |\Alph|, but produces
+% (uppercase) Cyrillic letters intead of Latin ones. The letters YO,
+% ISHRT, HRDSN, ERY, and SFTSN are skipped, as usual for such
+% enumeration.
+%
+% \begin{macrocode}
+\def\Asbuk#1{\expandafter\@Asbuk\csname c@#1\endcsname}
+\def\@Asbuk#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
+ \CYRZ\or\CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or
+ \CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or
+ \CYRC\or\CYRCH\or\CYRSH\or\CYRSHCH\or\CYREREV\or\CYRYU\or
+ \CYRYA\else\@ctrerr\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\asbuk}
+%
+% The macro |\asbuk| is similar to |\alph|; it produces lowercase
+% Russian letters.
+%
+% \begin{macrocode}
+\def\asbuk#1{\expandafter\@asbuk\csname c@#1\endcsname}
+\def\@asbuk#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
+ \cyrz\or\cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or
+ \cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or
+ \cyrc\or\cyrch\or\cyrsh\or\cyrshch\or\cyrerev\or\cyryu\or
+ \cyrya\else\@ctrerr\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Set up default Cyrillic math alphabets. To use Cyrillic letters in
+% math mode user should load the |textmath| package \emph{before}
+% loading fontenc package (or \babel). Note, that by default Cyrillic
+% letters are taken from upright font in math mode (unlike Latin
+% letters).
+% \begin{macrocode}
+%\RequirePackage{textmath}
+\@ifundefined{sym\cyrillicencoding letters}{}{%
+\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
+% \end{macrocode}
+% And we need a few commands to be able to switch to different variants.
+% \begin{macrocode}
+\DeclareMathAlphabet\cyrmathbf\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareMathAlphabet\cyrmathsf\cyrillicencoding
+ \sfdefault\mddefault\updefault
+\DeclareMathAlphabet\cyrmathit\cyrillicencoding
+ \rmdefault\mddefault\itdefault
+\DeclareMathAlphabet\cyrmathtt\cyrillicencoding
+ \ttdefault\mddefault\updefault
+%
+\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding
+ \sfdefault\bfdefault\updefault
+\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding
+ \rmdefault\bfdefault\itdefault
+}
+% \end{macrocode}
+%
+% Some math functions in Russian math books have other names: e.g.,
+% \texttt{sinh} in Russian is written as \texttt{sh} etc. So we define a
+% number of new math operators.
+%
+% |\sinh|:
+% \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits}
+% \end{macrocode}
+% |\cosh|:
+% \begin{macrocode}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+% \end{macrocode}
+% |\tan|:
+% \begin{macrocode}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+% \end{macrocode}
+% |\arctan|:
+% \begin{macrocode}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+% \end{macrocode}
+% arcctg:
+% \begin{macrocode}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+% \end{macrocode}
+% The following macro conflicts with |\th| defined in Latin~1 encoding:
+%
+% |\tanh|:
+% \changes{russianb-1.1q}{2004/05/21}{Change definition of \cs{th}
+% only for this language}
+% \begin{macrocode}
+\addto\extrasrussian{%
+ \babel@save{\th}%
+ \let\ltx@th\th
+ \def\th{\textormath{\ltx@th}%
+ {\mathop{\operator@font th}\nolimits}}%
+ }
+% \end{macrocode}
+% |\cot|:
+% \begin{macrocode}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+% \end{macrocode}
+% |\coth|:
+% \begin{macrocode}
+\def\cth{\mathop{\operator@font cth}\nolimits}
+% \end{macrocode}
+% |\csc|:
+% \begin{macrocode}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+% \end{macrocode}
+%
+% And finally some other Russian mathematical symbols:
+% \begin{macrocode}
+\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\def\nod{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrd.}}\nolimits}
+\def\nok{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrk.}}\nolimits}
+\def\NOD{\mathop{\cyrmathrm{\CYRN\CYRO\CYRD}}\nolimits}
+\def\NOK{\mathop{\cyrmathrm{\CYRN\CYRO\CYRK}}\nolimits}
+\def\Proj{\mathop{\cyrmathrm{\CYRP\cyrr}}\nolimits}
+% \end{macrocode}
+%
+% This is for compatibility with older Russian packages.
+% \begin{macrocode}
+\DeclareRobustCommand{\No}{%
+ \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a configuration file,
+% setting the main language to be switched on at |\begin{document}| and
+% resetting the category code of \texttt{@} to its original value.
+%
+% \changes{russianb-1.1d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+%
+% \begin{macrocode}
+\ldf@finish{russian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/russianb.ins b/Master/texmf-dist/source/generic/babel/russianb.ins
new file mode 100644
index 00000000000..607d861173f
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/russianb.ins
@@ -0,0 +1,147 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/03/13}
+\def\batchfile{russianb.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\usedir{tex/generic/babel}
+\keepsilent
+
+\usepreamble\mainpreamble
+
+\generate{\file{russianb.ldf}{\from{russianb.dtx}{code}}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.fd}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/samin.dtx b/Master/texmf-dist/source/generic/babel/samin.dtx
new file mode 100644
index 00000000000..b3d951204c7
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/samin.dtx
@@ -0,0 +1,232 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{120}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{samin.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{samin}
+%\fi
+%\ProvidesFile{samin.dtx}
+ [2004/02/20 v1.0c North Sami support from the babel system]
+%\iffalse
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2004
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source code for
+% the North Sami language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{samin.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{samin.dtx}
+%
+% \section{The North Sami language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. It was written by Regnor Jernsletten,
+% (\texttt{Regnor.Jernsletten@sami.uit.no}) or
+% (\texttt{Regnor.Jernsletten@eunet.no}).}
+% defines all the language definition macros for the North Sami language.
+%
+% Several Sami dialects/languages are spoken in Finland, Norway, Sweden
+% and on the Kola Peninsula (Russia). The alphabets differ, so there
+% will eventually be a need for more \texttt{.dtx} files for e.g. Lule
+% and South Sami. Hence the name \file{samin.dtx} (and not
+% \file{sami.dtx} or the like) in the North Sami case.
+%
+% There are currently no hyphenation patterns available for the North
+% Sami language, but you might consider using the patterns for Finnish
+% (\file{fi8hyph.tex}), Norwegian (\file{nohyph.tex}) or Swedish
+% (\file{sehyph.tex}). Add a line for the \texttt{samin} language to
+% the \file{language.dat} file, and rebuild the \LaTeX\ format file.
+% See the documentation for your \LaTeX\ distribution.
+%
+% A note on writing North Sami in \LaTeX: The TI encoding and EC fonts
+% do not include the T WITH STROKE letter, which you will need a
+% workaround for. My suggestion is to place the lines\\
+% |\newcommand{\tx}{\mbox{t\hspace{-.35em}-}}|\\
+% |\newcommand{\txx}{\mbox{T\hspace{-.5em}-}}|\\
+% in the preamble of your documents. They define the commands\\
+% |\txx{}| for LATIN CAPITAL LETTER T WITH STROKE and \\
+% |\tx{}| for LATIN SMALL LETTER T WITH STROKE.
+%
+% \subsection{The code of \file{samin.dtx}}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{samin}{captionssamin}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{samin} could be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@samin| to see whether we have to do
+% something here.
+%
+% \begin{macrocode}
+\ifx\undefined\l@samin
+ \@nopatterns{Samin}
+ \adddialect\l@samin0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the North Sami language.
+%
+% \begin{macro}{\saminhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{samin-1.0b}{2000/09/26}{use \cs{providehyphenmins}}
+% \begin{macrocode}
+\providehyphenmins{samin}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionssamin}
+% The macro |\captionssamin| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \changes{samin-1.0b}{2000/09/26}{Added \cs{glossaryname}}
+% \changes{samin-1.0c}{2000/10/04}{Provided the translation for
+% glossary}
+% \begin{macrocode}
+\def\captionssamin{%
+ \def\prefacename{Ovdas\'atni}%
+ \def\refname{\v Cujuhusat}%
+ \def\abstractname{\v Coahkk\'aigeassu}%
+ \def\bibname{Girjj\'ala\v svuohta}%
+ \def\chaptername{Kapihttal}%
+ \def\appendixname{\v Cuovus}%
+ \def\contentsname{Sisdoallu}%
+ \def\listfigurename{Govvosat}%
+ \def\listtablename{Tabeallat}%
+ \def\indexname{Registtar}%
+ \def\figurename{Govus}%
+ \def\tablename{Tabealla}%
+ \def\partname{Oassi}%
+ \def\enclname{Mielddus}%
+ \def\ccname{Kopia s\'addejuvvon}%
+ \def\headtoname{Vuost\'aiv\'aldi}%
+ \def\pagename{Siidu}%
+ \def\seename{geah\v ca}%
+ \def\alsoname{geah\v ca maidd\'ai}%
+ \def\proofname{Duo\dj{}a\v stus}%
+ \def\glossaryname{S\'atnelistu}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datesamin}
+% The macro |\datesamin| redefines the command |\today| to
+% produce North Sami dates.
+% \begin{macrocode}
+\def\datesamin{%
+ \def\today{\ifcase\month\or
+ o\dj{}\dj{}ajagem\'anu\or
+ guovvam\'anu\or
+ njuk\v cam\'anu\or
+ cuo\ng{}om\'anu\or
+ miessem\'anu\or
+ geassem\'anu\or
+ suoidnem\'anu\or
+ borgem\'anu\or
+ \v cak\v cam\'anu\or
+ golggotm\'anu\or
+ sk\'abmam\'anu\or
+ juovlam\'anu\fi
+ \space\number\day.~b.\space\number\year}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\extrassamin}
+% \begin{macro}{\noextrassamin}
+% The macro |\extrassamin| will perform all the extra
+% definitions needed for the North Sami language. The macro
+% |\noextrassamin| is used to cancel the actions of
+% |\extrassamin|. For the moment these macros are empty but
+% they are defined for compatibility with the other
+% language definition files.
+%
+% \begin{macrocode}
+\addto\extrassamin{}
+\addto\noextrassamin{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{samin}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/samin.ins b/Master/texmf-dist/source/generic/babel/samin.ins
new file mode 100644
index 00000000000..e94cf6f90ab
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/samin.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2000/09/26}
+\def\batchfile{samin.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{samin.ldf}{\from{samin.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/generic/babel/scottish.dtx b/Master/texmf-dist/source/generic/babel/scottish.dtx
new file mode 100644
index 00000000000..82613e5cd0b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/scottish.dtx
@@ -0,0 +1,209 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{95}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{scottish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{scottish}
+%\fi
+%\ProvidesFile{scottish.dtx}
+ [2005/03/31 v1.0g Scottish support from the babel system]
+%\iffalse
+%% File `scottish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Scottish language definition file.
+%
+% The Gaidhlig or Scottish Gaelic terms were provided by Fraser
+% Grant \texttt{FRASER@CERNVM}.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{scottish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{scottish.dtx}
+%
+% \changes{scottish-1.0b}{1995/06/14}{Corrected typos (PR1652)}
+% \changes{scottish-1.0d}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Scottish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Fraser Grant
+% (\texttt{FRASER@CERNVM}).} defines all the language definition
+% macros for the Scottish language.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{scottish-1.0d}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{scottish}\captionsscottish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{scottish} could be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@scottish| to see whether we have to do something
+% here.
+%
+% \begin{macrocode}
+\ifx\l@scottish\@undefined
+ \@nopatterns{scottish}
+ \adddialect\l@scottish0\fi
+% \end{macrocode}
+% The next step consists of defining commands to switch to (and
+% from) the Scottish language.
+%
+% \begin{macro}{\captionsscottish}
+% The macro |\captionsscottish| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \changes{scottish-1.0c}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{scottish-1.0g}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsscottish{%
+ \def\prefacename{Preface}% <-- needs translation
+ \def\refname{Iomraidh}%
+ \def\abstractname{Br\`{\i}gh}%
+ \def\bibname{Leabhraichean}%
+ \def\chaptername{Caibideil}%
+ \def\appendixname{Ath-sgr`{\i}obhadh}%
+ \def\contentsname{Cl\`ar-obrach}%
+ \def\listfigurename{Liosta Dhealbh }%
+ \def\listtablename{Liosta Chl\`ar}%
+ \def\indexname{Cl\`ar-innse}%
+ \def\figurename{Dealbh}%
+ \def\tablename{Cl\`ar}%
+ \def\partname{Cuid}%
+ \def\enclname{a-staigh}%
+ \def\ccname{lethbhreac gu}%
+ \def\headtoname{gu}%
+ \def\pagename{t.d.}% abrv. `taobh duilleag'
+ \def\seename{see}% <-- needs translation
+ \def\alsoname{see also}% <-- needs translation
+ \def\proofname{Proof}% <-- needs translation
+ \def\glossaryname{Glossary}% <-- Needs translation
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datescottish}
+% The macro |\datescottish| redefines the command |\today| to
+% produce Scottish dates.
+% \changes{scottish-1.0e}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{scottish-1.0e}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\datescottish{%
+ \def\today{%
+ \number\day\space \ifcase\month\or
+ am Faoilteach\or an Gearran\or am M\`art\or an Giblean\or
+ an C\`eitean\or an t-\`Og mhios\or an t-Iuchar\or
+ L\`unasdal\or an Sultuine\or an D\`amhar\or
+ an t-Samhainn\or an Dubhlachd\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasscottish}
+% \begin{macro}{\noextrasscottish}
+% The macro |\extrasscottish| will perform all the extra
+% definitions needed for the Scottish language. The macro
+% |\noextrasscottish| is used to cancel the actions of
+% |\extrasscottish|. For the moment these macros are empty but
+% they are defined for compatibility with the other language
+% definition files.
+%
+% \begin{macrocode}
+\addto\extrasscottish{}
+\addto\noextrasscottish{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{scottish-1.0d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{scottish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/scottish.ins b/Master/texmf-dist/source/generic/babel/scottish.ins
new file mode 100644
index 00000000000..5937bb1c446
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/scottish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{scottish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{scottish.ldf}{\from{scottish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/serbian.dtx b/Master/texmf-dist/source/generic/babel/serbian.dtx
new file mode 100644
index 00000000000..60179088835
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/serbian.dtx
@@ -0,0 +1,312 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{263}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{serbian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{serbian}
+%\fi
+%\ProvidesFile{serbian.dtx}
+ [2005/03/31 v1.0d Serbocroatian support from the babel system]
+%\iffalse
+% Babel package for LaTeX version 2e
+% Copyright (C) 1989 - 2005
+% by Johannes Braams, TeXniek
+%
+% Please report errors to: J.L. Braams
+% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Serbocroatian language definition file. A contribution
+% was made by Dejan Muhamedagi\'{c} (dejan@yunix.com) and Jankovic
+% Slobodan <slobodan@archimed.filfak.ac.ni.yu>
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{serbian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{serbian.dtx}
+% \changes{serbian-1.0b}{1998/06/16}{Added suggestions for shorthands
+% and so on from Jankovic Slobodan}
+%
+% \section{The Serbocroatian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. A contribution was made by Dejan Muhamedagi\'{c}
+% (\texttt{dejan@yunix.com}).} defines all the language definition
+% macros for the Serbian language, typeset in a latin script. In a
+% future version support for typesetting in a cyrillic script may
+% be added.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:serbian-quote} an overview is given of its
+% purpose. One of the reasons for this is that in the Serbian
+% language some special characters are used.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"c| & |\"c|, also implemented for the
+% lowercase and uppercase s and z. \\
+% |"d| & |\dj|, also implemented for |"D| \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% \verb="|= & disable ligature at this position \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"`| & for Serbian left double quotes (looks like ,,). \\
+% |"'| & for Serbian right double quotes. \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{serbian.ldf}}\label{tab:serbian-quote}
+% \end{center}
+% \end{table}
+%
+% Apart from defining shorthands we need to make sure taht the
+% first paragraph of each section is intended. Furthermore the
+% following new math operators are defined (|\tg|, |\ctg|,
+% |\arctg|, |\arcctg|, |\sh|, |\ch|, |\th|, |\cth|, |\arsh|,
+% |\arch|, |\arth|, |\arcth|, |\Prob|, |\Expect|, |\Variance|).
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{serbian}\captionsserbian
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{serbian} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@serbian| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@serbian\@undefined
+ \@nopatterns{Serbian}
+ \adddialect\l@serbian0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Serbocroatian language.
+%
+% \begin{macro}{\captionsserbian}
+% The macro |\captionsserbian| defines all strings used
+% in the four standard documentclasses provided with \LaTeX.
+% \changes{serbian-1.0d}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsserbian{%
+ \def\prefacename{Predgovor}%
+ \def\refname{Literatura}%
+ \def\abstractname{Sa\v{z}etak}%
+ \def\bibname{Bibliografija}%
+ \def\chaptername{Glava}%
+ \def\appendixname{Dodatak}%
+ \def\contentsname{Sadr\v{z}aj}%
+ \def\listfigurename{Slike}%
+ \def\listtablename{Tabele}%
+ \def\indexname{Indeks}%
+ \def\figurename{Slika}%
+ \def\tablename{Tabela}%
+ \def\partname{Deo}%
+ \def\enclname{Prilozi}%
+ \def\ccname{Kopije}%
+ \def\headtoname{Prima}%
+ \def\pagename{Strana}%
+ \def\seename{Vidi}%
+ \def\alsoname{Vidi tako\dj e}%
+ \def\proofname{Dokaz}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateserbian}
+% The macro |\dateserbian| redefines the command |\today| to
+% produce Serbocroatian dates.
+% \begin{macrocode}
+\def\dateserbian{%
+ \def\today{\number\day .~\ifcase\month\or
+ januar\or februar\or mart\or april\or maj\or
+ juni\or juli\or avgust\or septembar\or oktobar\or novembar\or
+ decembar\fi \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasserbian}
+% \begin{macro}{\noextrasserbian}
+% The macro |\extrasserbian| will perform all the extra
+% definitions needed for the Serbocroatian language. The macro
+% |\noextrasserbian| is used to cancel the actions of
+% |\extrasserbian|.
+%
+% For Serbian the \texttt{"} character is made active. This is done
+% once, later on its definition may vary. Other languages in the
+% same document may also use the \texttt{"} character for
+% shorthands; we specify that the serbian group of shorthands
+% should be used.
+%
+% \changes{serbian-1.0b}{1998/06/16}{Introduced the active \texttt{"}}
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasserbian{\languageshorthands{serbian}}
+\addto\extrasserbian{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{serbian-1.0c}{1999/12/17}{Deactivate shorthands ouside of
+% Serbian}
+% \begin{macrocode}
+\addto\noextrasserbian{\bbl@deactivate{"}}
+% \end{macrocode}
+% First we define shorthands to facilitate the occurence of letters
+% such as \v{c}.
+% \begin{macrocode}
+\declare@shorthand{serbian}{"c}{\textormath{\v c}{\check c}}
+\declare@shorthand{serbian}{"d}{\textormath{\dj}{\dj}}%%
+\declare@shorthand{serbian}{"s}{\textormath{\v s}{\check s}}
+\declare@shorthand{serbian}{"z}{\textormath{\v z}{\check z}}
+\declare@shorthand{serbian}{"C}{\textormath{\v C}{\check C}}
+\declare@shorthand{serbian}{"D}{\textormath{\DJ}{\DJ}}%%
+\declare@shorthand{serbian}{"S}{\textormath{\v S}{\check S}}
+\declare@shorthand{serbian}{"Z}{\textormath{\v Z}{\check Z}}
+% \end{macrocode}
+%
+% Then we define access to two forms of quotation marks, similar
+% to the german and french quotation marks.
+% \begin{macrocode}
+\declare@shorthand{serbian}{"`}{%
+ \textormath{\quotedblbase{}}{\mbox{\quotedblbase}}}
+\declare@shorthand{serbian}{"'}{%
+ \textormath{\textquotedblleft{}}{\mbox{\textquotedblleft}}}
+\declare@shorthand{serbian}{"<}{%
+ \textormath{\guillemotleft{}}{\mbox{\guillemotleft}}}
+\declare@shorthand{serbian}{">}{%
+ \textormath{\guillemotright{}}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define two shorthands to be able to specify hyphenation
+% breakpoints that behave a little different from |\-|.
+% \changes{serbian-1.0d}{2000/09/20}{Changed definition of \texttt{"-}
+% to be the same as for other languages}
+% \begin{macrocode}
+\declare@shorthand{serbian}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{serbian}{""}{\hskip\z@skip}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{serbian}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bbl@frenchindent}
+% \begin{macro}{\bbl@nonfrenchindent}
+% In Serbian the first paragraph of each section should be indented.
+% Add this code only in \LaTeX.
+% \begin{macrocode}
+\ifx\fmtname plain \else
+ \let\@aifORI\@afterindentfalse
+ \def\bbl@frenchindent{\let\@afterindentfalse\@afterindenttrue
+ \@afterindenttrue}
+ \def\bbl@nonfrenchindent{\let\@afterindentfalse\@aifORI
+ \@afterindentfalse}
+ \addto\extrasserbian{\bbl@frenchindent}
+ \addto\noextrasserbian{\bbl@nonfrenchindent}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\mathserbian}
+% Some math functions in Serbian math books have other names:
+% e.g. |sinh| in Serbian is written as |sh| etc. So we define a
+% number of new math operators.
+% \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits} % same as \sinh
+\def\ch{\mathop{\operator@font ch}\nolimits} % same as \cosh
+\def\th{\mathop{\operator@font th}\nolimits} % same as \tanh
+\def\cth{\mathop{\operator@font cth}\nolimits} % same as \coth
+\def\arsh{\mathop{\operator@font arsh}\nolimits}
+\def\arch{\mathop{\operator@font arch}\nolimits}
+\def\arth{\mathop{\operator@font arth}\nolimits}
+\def\arcth{\mathop{\operator@font arcth}\nolimits}
+\def\tg{\mathop{\operator@font tg}\nolimits} % same as \tan
+\def\ctg{\mathop{\operator@font ctg}\nolimits} % same as \cot
+\def\arctg{\mathop{\operator@font arctg}\nolimits} % same as \arctan
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+\def\Prob{\mathop{\mathsf P\hskip0pt}\nolimits}
+\def\Expect{\mathop{\mathsf E\hskip0pt}\nolimits}
+\def\Variance{\mathop{\mathsf D\hskip0pt}\nolimits}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{serbian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/serbian.ins b/Master/texmf-dist/source/generic/babel/serbian.ins
new file mode 100644
index 00000000000..137084466d2
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/serbian.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/03/13}
+\def\batchfile{serbian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\usedir{tex/generic/babel}
+\keepsilent
+
+\usepreamble\mainpreamble
+
+\generate{\file{serbian.ldf}{\from{serbian.dtx}{code}}}
+
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.fd}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/slovak.dtx b/Master/texmf-dist/source/generic/babel/slovak.dtx
new file mode 100644
index 00000000000..8b47f53b86e
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/slovak.dtx
@@ -0,0 +1,417 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{402}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{slovak.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{slovak}
+%\fi
+%\ProvidesFile{slovak.dtx}
+ [2005/03/31 v1.3a Slovak support from the babel system]
+%\iffalse
+%% File `slovak.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Slovak Language Definition File
+%% Copyright (C) 1989 - 2001
+%% by Jana Chlebikova
+% Department of Artificial Intelligence
+% Faculty of Mathematics and Physics
+% Mlynska dolina
+% 84215 Bratislava
+% Slovakia
+% (42)(7) 720003 l. 835
+% (42)(7) 725882
+% chlebikj at mff.uniba.cs (Internet)
+% and Johannes Braams, TeXniek
+%
+%% Copyright (C) 2002-2005
+%% by Tobias Schlemmer
+% Braunsdorfer Stra\ss e 101
+% 01159 Dresden
+% Deutschland
+% Tobias.Schlemmer at web.de
+%
+%% Please report errors to: J.L. Braams babel at braams.cistron.nl
+%% Tobias Schlemmer Tobias.Schlemmer at web.de
+%
+% This file is part of the babel system, it provides the source
+% code for the Slovak language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{slovak.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{slovak.dtx}
+%
+% \changes{slovak-1.0}{1992/07/15}{First version}
+% \changes{slovak-1.2}{1994/02/27}{Update for \LaTeXe}
+% \changes{slovak-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{slovak-1.2i}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+% \changes{slovak-1.3a}{2004/02/20}{Added contributed shorthand
+% definitions}
+%
+% \section{The Slovak language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. It was written by Jana Chlebikova
+% (\texttt{chlebik@euromath.dk}) and modified by Tobias Schlemmer
+% (\texttt{Tobias.Schlemmer@web.de}).} defines all the
+% language-specific macros for the Slovak language.
+%
+% For this language the macro |\q| is defined. It was used with the
+% letters (\texttt{t}, \texttt{d}, \texttt{l}, and \texttt{L}) and
+% adds a \texttt{'} to them to simulate a `hook' that should be
+% there. The result looks like t\kern-2pt\char'47. Since the the T1
+% font encoding has the corresponding characters it is mapped to |\v|.
+% Therefore we recommend using T1 font encoding. If you don't want to
+% use this encoding, please, feel free to redefine |\q| in your file.
+% I think babel will honour this |;-)|.
+%
+% For this language the characters |"|, |'| and |^| are ade
+% active. In table~\ref{tab:slovak-quote} an overview is given of
+% its purpose. Also the vertical placement of the
+% umlaut can be controlled this way.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"a| & |\"a|, also implemented for the other
+% lowercase and uppercase vowels. \\
+% |^d| & |\q d|, also implemented for l, t and L. \\
+% |^c| & |\v c|, also implemented for C, D, N, n, T, Z and z. \\
+% |^o| & |\^o|, also implemented for O. \\
+% |'a| & |\'a|, also implemented for the other lowercase and
+% uppercase l, r, y and vowels. \\
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |"`| & for German left double quotes (looks like ,,). \\
+% |"'| & for German right double quotes. \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{slovak.ldf}}\label{tab:slovak-quote}
+% \end{center}
+% \end{table}
+%
+% The quotes in table~\ref{tab:slovak-quote} can also be typeset by
+% using the commands in table~\ref{tab:smore-quote}.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |\glqq| & for German left double quotes (looks like ,,). \\
+% |\grqq| & for German right double quotes (looks like ``). \\
+% |\glq| & for German left single quotes (looks like ,). \\
+% |\grq| & for German right single quotes (looks like `). \\
+% |\flqq| & for French left double quotes (similar to $<<$). \\
+% |\frqq| & for French right double quotes (similar to $>>$).\\
+% |\flq| & for (French) left single quotes (similar to $<$). \\
+% |\frq| & for (French) right single quotes (similar to $>$). \\
+% |\dq| & the original quotes character (|"|). \\
+% |\sq| & the original single quote (|'|). \\
+% \end{tabular}
+% \caption{More commands which produce quotes, defined
+% by \file{slovak.ldf}}\label{tab:smore-quote}
+% \end{center}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{slovak-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{slovak}\captionsslovak
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{slovak} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@slovak| to see whether we have to do something here.
+%
+% \changes{slovak-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@slovak\@undefined
+ \@nopatterns{Slovak}
+ \adddialect\l@slovak0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Slovak language.
+%
+% \begin{macro}{\captionsslovak}
+% The macro |\captionsslovak| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{slovak-1.2g}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{slovak-1.2k}{1999/02/28}{Repaired a few spelling mistakes}
+% \changes{slovak-1.2l}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsslovak{%
+ \def\prefacename{\'Uvod}%
+ \def\refname{Referencie}%
+ \def\abstractname{Abstrakt}%
+ \def\bibname{Literat\'ura}%
+ \def\chaptername{Kapitola}%
+ \def\appendixname{Dodatok}%
+ \def\contentsname{Obsah}%
+ \def\listfigurename{Zoznam obr\'azkov}%
+ \def\listtablename{Zoznam tabuliek}%
+ \def\indexname{Index}%
+ \def\figurename{Obr\'azok}%
+ \def\tablename{Tabu\q lka}%%% special letter l with hook
+ \def\partname{\v{C}as\q t}%%% special letter t with hook
+ \def\enclname{Pr\'{\i}lohy}%
+ \def\ccname{CC}%
+ \def\headtoname{Komu}%
+ \def\pagename{Strana}%
+ \def\seename{vi\q d}%%% Special letter d with hook
+ \def\alsoname{vi\q d tie\v z}%%% Special letter d with hook
+ \def\proofname{D\^okaz}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateslovak}
+% The macro |\dateslovak| redefines the command |\today| to produce
+% Slovak dates.
+% \changes{slovak-1.2j}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{slovak-1.2j}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \changes{slovak-1.2k}{1999/02/28}{Repaired a spelling mistake}
+% \begin{macrocode}
+\def\dateslovak{%
+ \def\today{\number\day.~\ifcase\month\or
+ janu\'ara\or febru\'ara\or marca\or apr\'{\i}la\or m\'aja\or
+ j\'una\or j\'ula\or augusta\or septembra\or okt\'obra\or
+ novembra\or decembra\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasslovak}
+% \begin{macro}{\noextrasslovak}
+% The macro |\extrasslovak| will perform all the extra definitions
+% needed for the Slovak language. The macro |\noextrasslovak| is
+% used to cancel the actions of |\extrasslovak|.
+% For Slovak three characters are used to define shorthands, they
+% need to be made active.
+% \changes{slovak-1.3a}{2004/02/20}{Make three characters available
+% for shorthands}
+%
+% \begin{macrocode}
+\addto\extrasslovak{\languageshorthands{slovak}}
+\initiate@active@char{^}
+\addto\extrasslovak{\bbl@activate{^}}
+\addto\noextrasslovak{\bbl@deactivate{^}}
+\initiate@active@char{"}
+\addto\extrasslovak{\bbl@activate{"}\umlautlow}
+\addto\noextrasslovak{\bbl@deactivate{"}\umlauthigh}
+\initiate@active@char{'}
+\@ifpackagewith{babel}{activeacute}{%
+ \addto\extrasslovak{\bbl@activate{'}}
+ \addto\noextrasslovak{\bbl@deactivate{'}}%
+ }{}
+% \end{macrocode}
+%
+%
+% \changes{slovak-1.2e}{1995/05/28}{Use \LaTeX's \cs{v} accent
+% command}
+% \begin{macrocode}
+\addto\extrasslovak{\babel@save\q\let\q\v}
+% \end{macrocode}
+%
+% \changes{slovak-1.2b}{1994/06/04}{Added setting of left- and
+% righthyphenmin}
+%
+% The slovak hyphenation patterns should be used with
+% |\lefthyphenmin| set to~2 and |\righthyphenmin| set to~2.
+% \changes{slovak-1.2e}{1995/05/28}{Now use \cs{slovakhyphenmins}}
+% \changes{slovak-1.2l}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\sq{'}
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% In order to prevent problems with the active |^| we add a
+% shorthand on system level which expands to a `normal |^|.
+% \begin{macrocode}
+\declare@shorthand{system}{^}{\csname normal@char\string^\endcsname}
+% \end{macrocode}
+%
+% Now we can define the doublequote macros: the umlauts,
+% \begin{macrocode}
+\declare@shorthand{slovak}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
+\declare@shorthand{slovak}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
+\declare@shorthand{slovak}{"u}{\textormath{\"{u}\allowhyphens}{\ddot u}}
+\declare@shorthand{slovak}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
+\declare@shorthand{slovak}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
+\declare@shorthand{slovak}{"U}{\textormath{\"{U}\allowhyphens}{\ddot U}}
+% \end{macrocode}
+% tremas,
+% \begin{macrocode}
+\declare@shorthand{slovak}{"e}{\textormath{\"{e}\allowhyphens}{\ddot e}}
+\declare@shorthand{slovak}{"E}{\textormath{\"{E}\allowhyphens}{\ddot E}}
+\declare@shorthand{slovak}{"i}{\textormath{\"{\i}\allowhyphens}%
+ {\ddot\imath}}
+\declare@shorthand{slovak}{"I}{\textormath{\"{I}\allowhyphens}{\ddot I}}
+% \end{macrocode}
+% other slovak characters
+% \begin{macrocode}
+\declare@shorthand{slovak}{^c}{\textormath{\v{c}\allowhyphens}{\check{c}}}
+\declare@shorthand{slovak}{^d}{\textormath{\q{d}\allowhyphens}{\check{d}}}
+\declare@shorthand{slovak}{^l}{\textormath{\q{l}\allowhyphens}{\check{l}}}
+\declare@shorthand{slovak}{^n}{\textormath{\v{n}\allowhyphens}{\check{n}}}
+\declare@shorthand{slovak}{^o}{\textormath{\^{o}\allowhyphens}{\hat{o}}}
+\declare@shorthand{slovak}{^s}{\textormath{\v{s}\allowhyphens}{\check{s}}}
+\declare@shorthand{slovak}{^t}{\textormath{\q{t}\allowhyphens}{\check{t}}}
+\declare@shorthand{slovak}{^z}{\textormath{\v{z}\allowhyphens}{\check{z}}}
+\declare@shorthand{slovak}{^C}{\textormath{\v{C}\allowhyphens}{\check{C}}}
+\declare@shorthand{slovak}{^D}{\textormath{\v{D}\allowhyphens}{\check{D}}}
+\declare@shorthand{slovak}{^L}{\textormath{\q{L}\allowhyphens}{\check{L}}}
+\declare@shorthand{slovak}{^N}{\textormath{\v{N}\allowhyphens}{\check{N}}}
+\declare@shorthand{slovak}{^O}{\textormath{\^{O}\allowhyphens}{\hat{O}}}
+\declare@shorthand{slovak}{^S}{\textormath{\v{S}\allowhyphens}{\check{S}}}
+\declare@shorthand{slovak}{^T}{\textormath{\v{T}\allowhyphens}{\check{T}}}
+\declare@shorthand{slovak}{^Z}{\textormath{\v{Z}\allowhyphens}{\check{Z}}}
+% \end{macrocode}
+% acute accents,
+% \begin{macrocode}
+\@ifpackagewith{babel}{activeacute}{%
+ \declare@shorthand{slovak}{'a}{\textormath{\'a\allowhyphens}{^{\prime}a}}
+ \declare@shorthand{slovak}{'e}{\textormath{\'e\allowhyphens}{^{\prime}e}}
+ \declare@shorthand{slovak}{'i}{\textormath{\'\i{}\allowhyphens}{^{\prime}i}}
+ \declare@shorthand{slovak}{'l}{\textormath{\'l\allowhyphens}{^{\prime}l}}
+ \declare@shorthand{slovak}{'o}{\textormath{\'o\allowhyphens}{^{\prime}o}}
+ \declare@shorthand{slovak}{'r}{\textormath{\'r\allowhyphens}{^{\prime}r}}
+ \declare@shorthand{slovak}{'u}{\textormath{\'u\allowhyphens}{^{\prime}u}}
+ \declare@shorthand{slovak}{'y}{\textormath{\'y\allowhyphens}{^{\prime}y}}
+ \declare@shorthand{slovak}{'A}{\textormath{\'A\allowhyphens}{^{\prime}A}}
+ \declare@shorthand{slovak}{'E}{\textormath{\'E\allowhyphens}{^{\prime}E}}
+ \declare@shorthand{slovak}{'I}{\textormath{\'I\allowhyphens}{^{\prime}I}}
+ \declare@shorthand{slovak}{'L}{\textormath{\'L\allowhyphens}{^{\prime}l}}
+ \declare@shorthand{slovak}{'O}{\textormath{\'O\allowhyphens}{^{\prime}O}}
+ \declare@shorthand{slovak}{'R}{\textormath{\'R\allowhyphens}{^{\prime}R}}
+ \declare@shorthand{slovak}{'U}{\textormath{\'U\allowhyphens}{^{\prime}U}}
+ \declare@shorthand{slovak}{'Y}{\textormath{\'Y\allowhyphens}{^{\prime}Y}}
+ \declare@shorthand{slovak}{''}{%
+ \textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
+ }{}
+% \end{macrocode}
+% german and french quotes,
+% \begin{macrocode}
+\declare@shorthand{slovak}{"`}{\glqq}
+\declare@shorthand{slovak}{"'}{\grqq}
+\declare@shorthand{slovak}{"<}{\flqq}
+\declare@shorthand{slovak}{">}{\frqq}
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{slovak}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{slovak}{"|}{%
+ \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
+ \bbl@allowhyphens}{}}
+\declare@shorthand{slovak}{""}{\hskip\z@skip}
+\declare@shorthand{slovak}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{slovak}{"=}{\nobreak-\hskip\z@skip}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{slovak-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{slovak}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/slovak.ins b/Master/texmf-dist/source/generic/babel/slovak.ins
new file mode 100644
index 00000000000..3a007b7c3c7
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/slovak.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{slovak.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{slovak.ldf}{\from{slovak.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/slovene.dtx b/Master/texmf-dist/source/generic/babel/slovene.dtx
new file mode 100644
index 00000000000..391f39e7f9d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/slovene.dtx
@@ -0,0 +1,302 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{142}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{slovene.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{slovene}
+%\fi
+%\ProvidesFile{slovene.dtx}
+ [2005/03/31 v1.2m Slovene support from the babel system]
+%\iffalse
+%% File `slovene.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Slovenian language definition file. The Slovenian
+% words were contributed by Danilo Zavrtanik, University of
+% Ljubljana (Slovenia, former Yugoslavia).
+% The usage of the active " was introduced by
+% Leon \v{Z}lajpah
+% Jo\v{z}ef Stefan Institute,
+% Jamova 39, Ljubljana,
+% Slovenia
+% e-mail: leon.zlajpah at ijs.si
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{{textsf \1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{slovene.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{slovene.dtx}
+%
+% \changes{slovene-1.0a}{1991/07/15}{Renamed babel.sty in babel.com}
+% \changes{slovene-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{slovene-1.2}{1994/02/27}{Update for \LaTeXe}
+% \changes{slovene-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{slovene-1.2i}{1995/11/03}{Replaced `Slovanian' with correct
+% `Slovenian'}
+% \changes{slovene-1.2i}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+%
+% \section{The Slovenian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. Contributions were made by Danilo Zavrtanik,
+% University of Ljubljana (YU) and Leon \v{Z}lajpah
+% (\texttt{leon.zlajpah@ijs.si}).} defines all the
+% language-specific macros for the Slovenian language.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:slovene-quote} an overview is given of its
+% purpose. One of the reasons for this is that in the Slovene
+% language some special characters are used.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"c| & |\"c|, also implemented for the
+% lowercase and uppercase s and z. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|). \\
+% |"`| & for Slovene left double quotes (looks like ,,). \\
+% |"'| & for Slovene right double quotes. \\
+% |"<| & for French left double quotes (similar to $<<$). \\
+% |">| & for French right double quotes (similar to $>>$).\\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{slovene.ldf}}\label{tab:slovene-quote}
+% \end{center}
+% \end{table}
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{slovene-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{slovene}\captionsslovene
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{slovene} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@slovene| to see whether we have to do something here.
+%
+% \changes{slovene-1.0b}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \changes{slovene-1.1}{1992/02/16}{Added a warning when no
+% hyphenation patterns were loaded.}
+% \changes{slovene-1.2d}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@slovene\@undefined
+ \@nopatterns{Slovene}
+ \adddialect\l@slovene0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to the
+% Slovenian language. The reason for this is that a user might want
+% to switch back and forth between languages.
+%
+% \begin{macro}{\captionsslovene}
+% The macro |\captionsslovene| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{slovene-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{slovene-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{slovene-1.2b}{1994/06/04}{Added extra translations from
+% Josef Leydold, \texttt{leydold@statrix2.wu-wien.ac.at}}
+% \changes{slovene-1.2g}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{slovene-1.2h}{1995/07/25}{Added translation of `Proof'}
+% \changes{slovene-1.2m}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsslovene{%
+ \def\prefacename{Predgovor}%
+ \def\refname{Literatura}%
+ \def\abstractname{Povzetek}%
+ \def\bibname{Literatura}%
+ \def\chaptername{Poglavje}%
+ \def\appendixname{Dodatek}%
+ \def\contentsname{Kazalo}%
+ \def\listfigurename{Slike}%
+ \def\listtablename{Tabele}%
+ \def\indexname{Stvarno kazalo}% used to be Indeks
+ \def\figurename{Slika}%
+ \def\tablename{Tabela}%
+ \def\partname{Del}%
+ \def\enclname{Priloge}%
+ \def\ccname{Kopije}%
+ \def\headtoname{Prejme}%
+ \def\pagename{Stran}%
+ \def\seename{glej}%
+ \def\alsoname{glej tudi}%
+ \def\proofname{Dokaz}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateslovene}
+% The macro |\dateslovene| redefines the command |\today| to
+% produce Slovenian dates.
+% \changes{slovene-1.2j}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{slovene-1.2j}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\dateslovene{%
+ \def\today{\number\day.~\ifcase\month\or
+ januar\or februar\or marec\or april\or maj\or junij\or
+ julij\or avgust\or september\or oktober\or november\or december\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasslovene}
+% \begin{macro}{\noextrasslovene}
+% The macro |\extrasslovene| performs all the extra definitions
+% needed for the Slovenian language. The macro |\noextrasslovene|
+% is used to cancel the actions of |\extrasslovene|.
+%
+% For Slovene the \texttt{"} character is made active. This is done
+% once, later on its definition may vary. Other languages in the
+% same document may also use the \texttt{"} character for
+% shorthands; we specify that the slovenian group of shorthands
+% should be used.
+%
+% \changes{slovene-1.2f}{1995/06/04}{Introduced the active \texttt{"}}
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasslovene{\languageshorthands{slovene}}
+\addto\extrasslovene{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{slovene-1.2l}{1999/12/17}{Deactivate shorthands ouside of
+% Slovene}
+% \begin{macrocode}
+\addto\noextrasslovene{\bbl@deactivate{"}}
+% \end{macrocode}
+% First we define shorthands to facilitate the occurence of letters
+% such as \v{c}.
+% \changes{slovene-1.2i}{1996/09/21}{removed shorthand for \texttt{"L}
+% as it is not needed for slovenian}
+% \begin{macrocode}
+\declare@shorthand{slovene}{"c}{\textormath{\v c}{\check c}}
+\declare@shorthand{slovene}{"s}{\textormath{\v s}{\check s}}
+\declare@shorthand{slovene}{"z}{\textormath{\v z}{\check z}}
+\declare@shorthand{slovene}{"C}{\textormath{\v C}{\check C}}
+\declare@shorthand{slovene}{"S}{\textormath{\v S}{\check S}}
+\declare@shorthand{slovene}{"Z}{\textormath{\v Z}{\check Z}}
+% \end{macrocode}
+%
+% Then we define access to two forms of quotation marks, similar
+% to the german and french quotation marks.
+% \changes{slovene-1.2j}{1997/04/03}{Removed empty groups after
+% double quote and guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{slovene}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{slovene}{"'}{%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}
+\declare@shorthand{slovene}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{slovene}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% then we define two shorthands to be able to specify hyphenation
+% breakpoints that behavew a little different from |\-|.
+% \begin{macrocode}
+\declare@shorthand{slovene}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{slovene}{""}{\hskip\z@skip}
+% \end{macrocode}
+% And we want to have a shorthand for disabling a ligature.
+% \begin{macrocode}
+\declare@shorthand{slovene}{"|}{%
+ \textormath{\discretionary{-}{}{\kern.03em}}{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{slovene-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{slovene}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/slovene.ins b/Master/texmf-dist/source/generic/babel/slovene.ins
new file mode 100644
index 00000000000..86760a5e13f
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/slovene.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{slovene.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{slovene.ldf}{\from{slovene.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/sorbian.ins b/Master/texmf-dist/source/generic/babel/sorbian.ins
new file mode 100644
index 00000000000..c329cad27b2
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/sorbian.ins
@@ -0,0 +1,149 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{sorbian.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{lsorbian.ldf}{\from{lsorbian.dtx}{code}}
+ \file{usorbian.ldf}{\from{usorbian.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/spanish.dtx b/Master/texmf-dist/source/generic/babel/spanish.dtx
new file mode 100644
index 00000000000..232c2436479
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/spanish.dtx
@@ -0,0 +1,2638 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{2195}
+% \ProvidesFile{spanish.dtx}
+% [2004/02/20 v4.2b Spanish support from the babel system]
+%\iffalse
+%% File `spanish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2004
+%% by Johannes Braams, TeXniek
+%
+%% Spanish Language Definition File
+%% Copyright (C) 1997 - 2005
+%% by Javier Bezos (jbezos at wanadoo.es)
+%% Apartado 116.035
+%% E-28080 Madrid
+%% Espa\~na / Espagne
+%% and
+%% by CervanTeX (www.cervantex.org)
+%
+%% Please report errors to: Javier Bezos (preferably)
+%% jbezos at wanadoo.es
+%% J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Spanish language definition file.
+% The original version of this file was written by Javier Bezos.
+%
+%<*filedriver>
+\documentclass[spanish,a4paper]{ltxdoc}
+\usepackage[activeacute]{babel}
+
+%\usepackage{ps}
+
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+
+\setlength{\arrayrulewidth}{2\arrayrulewidth}
+\newcommand\toprule{\cline{1-2}\\[-2ex]}
+\newcommand\botrule{\\[.6ex]\cline{1-2}}
+\newcommand\hmk{$\string|$}
+
+\newcommand\New[1]{%
+ \leavevmode\marginpar{\raggedleft\sffamily Nuevo en #1}}
+
+\newcommand\nm[1]{\unskip\,$^{#1}$}
+\newcommand\nt[1]{\quad$^{#1}$\,\ignorespaces}
+
+\makeatletter
+ \renewcommand\@biblabel{}
+\makeatother
+
+\newcommand\DOT[1]{\lsc{DOT},~#1}
+\newcommand\DTL[1]{\lsc{DTL},~#1}
+\newcommand\MEA[1]{\lsc{MEA},~#1}
+
+\raggedright
+\setlength{\parindent}{1em}
+
+\addtolength{\oddsidemargin}{-2pc}
+\addtolength{\textwidth}{4pc}
+
+\OnlyDescription
+\begin{document}
+ \DocInput{spanish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+%
+% \begingroup
+%
+% \catcode`\{=11
+% \catcode`\[=1
+%
+% \gdef\ignoringuser[^^A
+% \bgroup
+% \let\end{userdtx\fi
+% \let\end{userdrv\fi
+% \aftergroup\endgroup
+% \catcode`\{=11
+% \catcode`f=14 ^^A kills \if... and \fi
+% \catcode`l=14 ^^A kills \else
+% \catcode`o=14 ^^A kills \or
+% \catcode`p=14 ^^A kills \repeat
+% \iffalse}
+%
+% \endgroup
+%
+% \newenvironment{userdtx}
+% {\ifx\langdeffile\undefined
+% \else\expandafter\ignoringuser
+% \fi}{}
+%
+% \newenvironment{userdrv}
+% {\ifx\langdeffile\undefined
+% \expandafter\ignoringuser
+% \else\fi}{}
+%
+% \begin{userdtx}
+%^^A ======= Beginning of text as typeset by spanish.dtx =========
+%
+% \title{Estilo \textsf{spanish}\\
+% para el sistema \babel.\footnote{Este
+% archivo est\'a actualmente en la versi\'on
+% 4.2b con fecha 12 de septiembre del 2003. ^^A@#
+% Esta copia del manual se compuso el~\today.}}
+%
+% \author{Javier Bezos\footnote{Por favor, env\'{\i}en
+% comentarios y sugerencias a \texttt{jbezos@wanadoo.es}
+% o a mi direcci\'on postal: Apartado 116.035, E-28080 Madrid,
+% Espa'na / Espagne. Han colaborado de una u otra forma muchas
+% personas, a las cuales agradezco sus comentarios y sugerencias.
+% Para m'as informaci'on sobre los criterios seguidos, v'ease la
+% referencia: Javier Bezos, \textit{Tipograf'ia espa'nola con
+% \TeX.} Para informaci'on sobre actualizaciones:
+% http://www.cervantex.org/}}
+%
+% \date{12 de septiembre del 2003} ^^A@#
+%
+% \maketitle
+%
+% {\small\tableofcontents}
+%
+%% \section{\textsf{spanish} como lengua principal}
+%
+% En \babel{} se considera que la 'ultima lengua citada en |\usepackage| y
+% |\documentclass|, por este orden, es la lengua principal. Si la
+% lengua principal es |spanish|, \New{4.1} se activa el grupo
+% |\layoutspanish| que adapta varios elementos
+% a los usos tipogr'aficos espa'noles del siguiente modo:
+%
+% \begin{itemize}
+%
+% \item[$\diamond$]
+% |enumerate| e |itemize|\\[1ex]
+%
+% El primero usa la siguiente secuencia:\,\footnote{No hay raz'on
+% concreta para ella. Es tan s'olo una f'ormula de compromiso.}\\
+% \quad 1.\\
+% \qquad \emph{a})\\
+% \quad\qquad 1)\\
+% \qquad\qquad \emph{a$'$})\\
+% El segundo la siguiente:\\
+% \quad\leavevmode\hbox to 1.2ex
+% {\hss\vrule height .95ex width .8ex depth -.15ex\hss}\\
+% \qquad\textbullet\\
+% \quad\qquad $\circ$\\
+% \qquad\qquad $\diamond$
+%
+% \New{4.2}Dos 'ordenes permiten otros estilos en
+% |itemize|: con |\spanishdashitems| se cambia a rayas en todos los
+% niveles, y con |\spanishsignitems|, a \textbullet{} $\circ$
+% $\diamond$ $\triangleright$.
+%
+% \item[$\diamond$]
+% |\alph| y |\Alph|\\[1ex]
+%
+% Incluyen la e'ne.
+%
+% \item[$\diamond$]
+% |\fnsymbol|\\[1ex]
+%
+% Se emplean uno, dos, tres... asteriscos (*, **, ***, etc.),
+% en lugar de la sucesi'on angloamericana de cruces, barras,
+% etc.\footnote{\DOT{162}.}
+%
+% \item[$\diamond$]
+% |\guillemotleft| y |\guillemotright|\\[1ex]
+%
+% Las comillas latinas para |OT1| son menos angulosas y se generan
+% con unas puntas de flecha de |lasy|.
+%
+% \item[$\diamond$]
+% |\roman|\\[1ex]
+%
+% Como en castellano no se usan n'umeros romanos
+% en min'uscula, |\roman| se redefine para que los d'e en
+% versalitas.\footnote{\DTL{197}. Los n'umeros romanos con
+% versalitas son desconocidos en ingl'es, donde se prefiere
+% la min'uscula. En la Europa continental, la situaci'on es
+% justamente la opuesta.}
+%
+% \begin{quote}\small
+% \textbf{Nota.} MakeIndex no puede entender la forma en que
+% |\roman| escribe el n'umero de p'agina, por lo
+% que elimina las l'ineas afectadas. Por ello el archivo |.idx|
+% ha de ser convertido antes de procesarlo con MakeIndex.
+% Con este paquete se proporciona la utilidad |romanidx.tex| que se
+% encarga de ello. Simplemente se compone ese archivo con \LaTeX{}
+% y a continuaci'on se responde a las preguntas que se formulan.
+% Este proceso no es necesario si no se introdujo ninguna
+% entrada de 'indice en p'aginas numeradas con |\roman| (lo cual ser'a
+% lo m'as normal). Si un s'imbolo propio de \emph{MakeIndex} generara
+% problemas, debe encerrarse entre llaves: \verb={"|}=.
+% \end{quote}
+%
+% \item[$\diamond$]
+% |\section|, |\subsection|, etc.\\[1ex]
+%
+% Los n'umeros en los t'itulos est'an seguidos de un punto
+% tanto en el texto como en el 'indice. Adem'as,
+% el primer p'arrafo tras el t'itulo no elimina la sangr'ia
+% (de nuevo, una costumbre angloamericana).
+%
+% \end{itemize}
+%
+% Estos cambios funcionan con las clases est'andar ~---con otras
+% tal vez alguno de ellos no tenga efecto--- y persisten durante
+% todo el documento (no se pueden desactivar). Ninguno de ellos
+% es necesario para componer el documento, aunque naturalmente el
+% resultado ser'a distinto.
+%
+% \begin{itemize}
+%
+% \item[$\diamond$]
+% |\selectspanish*|\\[1ex]
+%
+% \New{4.1}Si no se desean estos cambios, basta con usar en el
+% pre'ambulo |\selectspanish*| (con asterisco) o <<borrarlos>> con:
+%\begin{verbatim}
+% \let\layoutspanish\relax
+%\end{verbatim}
+%
+% \end{itemize}
+%
+% \section{Descripci'on}
+%
+% \subsection{Traducciones}
+%
+% Ciertas 'ordenes se definen para
+% proporcionar traducciones al castellano de algunos t'erminos, tal
+% y como se describe en el cuadro 1.
+%
+% \begin{table}
+% \center\small
+% \caption{Traducciones}
+% \vspace{1.5ex}
+% \begin{tabular}{l@{\hspace{3em}}l}
+% \toprule
+% |\refname| & Referencias\\
+% |\abstractname| & Resumen\\
+% |\bibname| & Bibliograf'ia\\
+% |\chaptername| & Cap'itulo\\
+% |\appendixname| & Ap'endice\\
+% |\contentsname| & 'Indice general\nm{a}\\
+% |\listfigurename| & 'Indice de figuras\\
+% |\listtablename| & 'Indice de cuadros\\
+% |\indexname| & 'Indice alfab'etico\\
+% |\figurename| & Figura\\
+% |\tablename| & Cuadro\\
+% |\partname| & Parte\\
+% |\enclname| & Adjunto\\
+% |\ccname| & Copia a\\
+% |\headtoname| & A\\
+% |\pagename| & P'agina\\
+% |\seename| & v'ease\\
+% |\alsoname| & v'ease tambi'en\\
+% |\proofname| & Demostraci'on
+% \botrule
+% \end{tabular}
+%
+% \vspace{1.5ex}
+%
+% \begin{minipage}{6cm}\footnotesize
+% \nt{a} Pero s'olo <<'Indice>> en \textsf{article}.
+% \end{minipage}
+% \end{table}
+%
+% No existe una terminolog'ia unificada.
+% Tal vez \emph{'Indice general} es lo
+% que m'as se usa para el 'indice de los cap'itulos, as'i que a
+% ello me atengo salvo en |article|, donde se compone como secci'on
+% y por tanto resulta algo ostentoso.\footnote{Al contrario que en
+% ingl'es, en castellano el 'indice por antonomasia es el general.}
+%
+% Para el 'indice alfab'etico se ha propuesto \emph{'Indice de
+% materias} o \emph{'Indice anal'itico}, aunque
+% estos 'indices no solamente suelen incluir
+% materias, sino tambi'en nombres; \emph{'Indice alfab'etico} es
+% m'as preciso.\footnote{Es la usada en \DOT{300} as'i
+% como en la mayor'ia de los libros que consult'e al azar en una
+% biblioteca.}
+%
+% En cuanto a los de cuadros y figuras, tambi'en es posible decir
+% \emph{lista}, pero me parece preferible \emph{'indice}, que
+% implica la correspondencia con las p'aginas.
+%
+% Para traducir \emph{table} es mejor \emph{cuadro}, ya que
+% \emph{tabla} es un \emph{falso amigo};\,\footnote{V'eanse las
+% definiciones del \lsc{DRAE} y \DTL{67 ss.}} esa es la pr'actica
+% tradicional. (Por ejemplo, <<cuadro de estados medievales>>
+% frente a <<tabla de logaritmos>>.)
+%
+% Las traducciones se escriben de min'usculas, salvo la inicial.
+% Se evita el anglicismo de comenzar en
+% may'usculas los sustantivos.\footnote{\DOT{197}.}
+%
+% La orden |\today| da la fecha actual. \New{4.2}Aunque al citar
+% a'nos posteriores a 1999 la Academia s'olo admite la supresi'on del
+% art'iculo en cartas y documentos, en la pr'actica se ha extendido
+% esta construcci'on agramatical y as'i se hace aqu'i. Con
+% |\spanishdatedel| y |\spanishdatede| se opta por \textit{del}
+% (recomendado) o \textit{de} (predeterminado).
+%
+% \subsection{Abreviaciones}
+%
+% (Lo que en \babel{} se denomina `shorthands'.) La
+% lista completa se puede encontrar en el cuadro 2. En los
+% siguientes apartados se dar'an m'as detalles sobre algunas de
+% ellas.
+%
+% \begin{table}[!t]
+% \center\small
+% \caption{Abreviaciones}
+% \vspace{1.5ex}
+% \begin{tabular}{l@{\hspace{3em}}l}
+% \toprule
+% |'a 'e 'i 'o 'u| & 'a 'e 'i 'o 'u\\
+% |'A 'E 'I 'O 'U| & 'A 'E 'I 'O 'U\\
+% |'n 'N| & 'n 'N\nm{a}\\
+% |"u "U| & "u "U\\
+% |"a "A "o "O| & Ordinales: 1"a, 1"A, 1"o, 1"O\\
+%\llap{\textsf{Nuevo en 4.2 }}\relax
+% |"er "ER| & Ordinales: 1"er, 1"ER\\
+% |"c "C| & "c "C\nm{b}\\
+% |"rr "RR| & rr, pero -r cuando se divide\\
+% |"y| & El antiguo signo para <<y>>\\
+% |"-| & Como |\-|, pero permite m'as divisiones\\
+% |"=| & Como |-|, pero permite mas divisiones\nm{c}\\
+% |"~| & Gui'on estil'istico\nm{d}\\
+% |~- ~-- ~---| & Como |-|, |--| y |---|, pero sin divisi'on\\
+% |""| & Permite mas divisiones antes y despu'es\nm{e}\\
+% |"/| & Una barra algo m'as baja\\
+% \verb+"|+ & Divide un logotipo\nm{f}\\
+% |"< ">| & "< ">\\
+% |<< >>| & |\begin{quoting}| |\end{quoting}|\nm{g}\\
+% |?` !`| & ?` !`\nm{h}\\
+%\llap{\textsf{Nuevo en 4.2 }}\relax
+%|"? "!| & "? "! alineados con la linea base\nm{i}
+% \botrule
+% \end{tabular}
+%
+% \vspace{1.5ex}
+%
+% \begin{minipage}{11cm}
+% \footnotesize
+% \nt{a} La forma |~n| debe considerarse en extinci'on.
+% \nt{b} La cedilla ya no se usa, pero se us'o anta'no.
+% \nt{c} |"=| viene a ser lo mismo que |""-""|.
+% \nt{d} Esta abreviaci'on tiene un uso distinto
+% en otras lenguas. \nt{e} Como en <<entrada/salida>>.
+% \nt{f} Carece de uso en castellano. \nt{g} V'ease sec.~2.7.
+% \nt{h} No proporcionadas por este paquete, sino por cada tipo;
+% figuran aqu'i como simple recordatorio. \nt{i} 'Utiles en
+% r'otulos en may'usculas.
+% \end{minipage}
+% \end{table}
+%
+% Para poder usar ap'ostrofos como abreviaciones de acentos
+% es necesaria la opci'on |activeacute| en |\usepackage|.
+% Puede cambiarse este comportamiento con
+% la orden |\es@acuteactive| en el archivo de configuraci'on
+% |spanish.cfg|; en ese caso los ap'ostrofos se activan siempre.
+%
+% \New{4.1} La conjunci'on \textit{y} es de por s'i bastante breve,
+% por lo que en espa'nol no se han usado signos sustitutorios
+% desde hace varios siglos. Sin
+% embargo, existe un signo parecido a un dos dado la vuelta, que
+% desapareci'o tras el Renacimento y que se emplea hoy en ediciones
+% paleogr'aficas. Se puede <<imitar>> con |"y|, siempre que se
+% haya cargado el paquete |graphics|; de no ser as'i, se usa la letra
+% $\tau$, aunque la variante normal de \TeX{} no es demasiado
+% apropiada.
+%
+% Los caracteres usados como abreviaciones se comportan
+% como otras 'ordenes de \TeX{} y por tanto se hace caso
+% omiso de los espacios que le puedan seguir: \verb*|' a| es lo mismo
+% que |'a|. Eso tambi'en implica que tras esos caracteres no
+% puede ir una llave de cierre y que deber'a escribirse
+% |{... '{}}| en lugar de |{... '}|; en modo matem'atico no hay
+% problema y |$x^{a'}$| ($x^{a'}$) es v'alido. \New{4.1}
+%
+% \begin{itemize}
+%
+% \item[$\diamond$]
+% |\deactivatetilden|\\[1ex]
+%
+% Esta orden desactiva las abreviaciones |~n| y |~N| debido a
+% los problemas que presentan. Puede usarse en el archivo
+% de configuraci'on (v'ease m'as abajo).
+%
+% % \item[$\diamond$]
+% |\spanishdeactivate{<caracteres>}|\\[1ex]
+%
+% \New{4.1}Permite desactivar las abreviaciones correspondientes a los
+% caracteres dados. Para evitar entrar en conflicto con otras lenguas,
+% al salir de |spanish| se reactivan,\footnote{El punto para
+% los decimales no es estrictamente una abreviaci'on y no se
+% reactiva.} por lo que si se desea que
+% persista hay que a'nadir la orden a |\shorthandsspanish| con
+%|\addto|. La orden |\renewcommand\shorthandsspanish{}| es una
+% variante optimizada de
+%\begin{verbatim}
+% \addto\shorthandsspanish{\spanishdeactivate{.'"~<>}}
+%\end{verbatim}
+% y es lo recomendado si se desea
+% prescindir del mecanismo de abreviaciones.
+% \end{itemize}
+%
+% \subsection{Coma decimal}
+%
+% Tanto el ingl'es como el castellano y otras lenguas tienen sus
+% formas tradicionales de representar la coma decimal. En ingl'es
+% es algo como $12{\cdot}34$, mientras que en castellano
+% es $12$'$34$. Adem'as, los millares se pueden separar por coma en
+% ingl'es y punto en castellano.\footnote{Excepto en a'nos, donde
+% siempre se escriben las cifras juntas: \emph{1978, 1998}.}
+% Tales formas deben ser descartadas, pues se ha llegado a
+% una normalizaci'on internacional donde los millares se
+% separan por un espacio fino y los decimales con coma.\footnote{%
+% La ISO admite el punto en pa'ises donde haya sido esa
+% la tradici'on, aunque recomienda que se adapten a la coma.}
+%
+% Ya que \TeX\ usa la coma como separador en intervalos o expresiones
+% similares, lo que a'nade un espacio fino, \textsf{spanish}
+% convierte todo punto en modo matem'atico en
+% una coma siempre que est'e seguido de una cifra, pero no en otras
+% circunstancias:
+% \begin{quote}\small\begin{tabbing}
+% |$1\,234.567\,890$| \quad \= $1\,234.567\,890$\\
+% |$f(1,2)=12.34.$| \> $f(1,2)=12.34.$\\
+% |$1{.}000$| \> $1{.}000$, pero\\
+% |1.000| \> 1.000, pues no es modo matem'atico.
+% \end{tabbing}\end{quote}
+%
+% Las 'ordenes |\decimalcomma| y |\decimalpoint|
+% establecen si se usa una coma, que es el valor predeterminado,
+% o un punto, mientras que |\spanishdecimal{<math>}| permite darle
+% una definici'on arbitraria.\footnote{Internamente el mecanismo es
+% de una abreviaci'on, y se puede desactivar como las otras.
+% \textsf{Nuevo 4.2}}
+%
+% \subsection{Divisi'on de palabras}
+%
+% \textsf{Spanish} comprueba la
+% codificaci'on en el momento en que se usa un acento: si la
+% codificaci'on es |OT1| se toman medidas para facilitar
+% la divisi'on, que pese a todo nunca ser'a perfecta, mientras que con
+% |T1| se accede directamente al car'acter correspondiente.
+%
+% Para matizar la divisi'on de palabras hay cuatro posibilidades, dos
+% de ellas con el m'etodo de abreviaciones:
+% \begin{itemize}
+% \item la orden |\-| es un gui'on opcional que no permite
+% m'as divisiones,
+%
+% \item |"-| es similar pero permite m'as divisiones,
+%
+% \item un |-| es un gui'on que no permite m'as divisiones ni
+% antes ni despu'es, y
+%
+% \item |"=| es el equivalente que s'i las permite,\footnote{No
+% es una buena idea usar esta orden, pero en
+% medidas muy cortas puede resultar necesario.}
+%
+% \end{itemize}
+% Por ejemplo (con las posibles divisiones marcadas con \hmk):
+% \begin{quote}\small\begin{tabbing}
+% |Zaragoza-Barcelona|\qquad \= Zaragoza-\hmk Barcelona\\
+% |Zaragoza"=Barcelona| \>
+% Za\hmk ra\hmk go\hmk za-\hmk Bar\hmk ce\hmk lo\hmk na\\
+% |semi\-abierto| \> semi\hmk abierto\\
+% |semi"-abierto| \> se\hmk mi\hmk abier\hmk to.\footnotemark
+% \end{tabbing}\footnotetext{Justo antes y despu'es de
+% {\ttfamily\string"\string-} y {\ttfamily\string"\string=} se
+% aplican los correspondientes
+% valores de {\ttfamily\string\...hyphenmin} lo que implica que la
+% divis'on semia\hmk bierto no es posible.
+% 'Este es un comportamiento correcto.}
+% \end{quote}
+%
+% Adem'as. hay abreviaciones que evitan
+% divisiones: |~-|, que resulta 'util para expresar una serie de
+% n'umeros sin que el gui'on los divida (12~-14, |12~-14|), y |~---|,
+% que es la forma que debe usarse para abrir incisos con rayas, ya que
+% de lo contrario puede haber una divisi'on entre la raya de abrir y
+% la palabra que le sigue:
+% \begin{quote}\small\begin{tabbing}
+% |Los conciertos ~---o academias--- que organiz'o...|
+% \end{tabbing}\end{quote}
+% Mientras que este gui'on evita toda posible divisi'on en los
+% elementos que une, la raya (---) y la semirraya (--) las permiten
+% en las palabras que le precedan o le sigan.
+%
+% La abreviaci'on |"~| se usa cuando se quiere que el gui'on
+% tambi'en aparezca al comienzo de la siguiente l'inea. Por ejemplo:
+% \begin{quote}\small\begin{tabbing}
+% |infra"~rojo| \quad \= in\hmk fra-ro\hmk jo, pero infra-\hmk-rojo.
+% \end{tabbing}\end{quote}
+%
+% Otra abreviaci'on es |"rr| que sirve para el
+% 'unico cambio de escritura del castellano en caso de haber divisi'on.
+% La \lsc{RAE} indica que al a'nadir un prefijo que termina en vocal a
+% una palabra que comienza con \emph{r}, 'esta 'ultima debe
+% doblarse a menos que se unan por un gui'on. Por ejemplo:
+% \begin{quote}\small\begin{tabbing}
+% |extra"rradio| \quad \= ex\hmk trarra\hmk dio, pero extra-\hmk
+% radio.
+% \end{tabbing}\end{quote}
+% No hay acuerdo sobre si esta regla y otras similares han de
+% aplicarse o no, aunque la opini'on mayoritaria actual est'a en
+% contra.
+%
+% \subsection{Ordinales}
+%
+% Las abreviaturas siempre llevan punto, salvo algunas en que
+% se sustituye por una barra (y salvo las siglas y s'imbolos,
+% naturalmente), que precede a las letras voladitas.\footnote{Puede
+% comprobarse en \DTL{196}. V'ease tambi'en \DOT{222 y 227}.}
+% Por ello, \textsf{spanish} proporciona la orden
+% |\sptext| que facilita la creaci'on de estas abreviaturas. Por
+% ejemplo: |adm\sptext{'on}| que da adm\sptext{'on}. Hay seis abreviaciones
+% asociadas a ordinales: |"a|, |"A|, |"o|, |"O|, |"er| y |"ER| que equivalen a
+% |\sptext{a}|, etc.\footnote{Muchos tipos a'naden
+% un peque'no subrayado que debe evitarse, y por tanto no se debe
+% escribir los ordinales con \textsf{inputenc}.}
+%
+% Para ajustar el tama'no lo mejor posible, se usa el de
+% 'indices en curso. Esto funciona bien salvo para tama'nos muy
+% grandes o muy peque'nos, donde los resultados son meramente
+% aceptables.
+%
+% \New{4.1}En Plain \TeX{} se ejecuta la orden |\sptextfont| para la
+% letra voladita, de forma que |{\bf\let\sptextfont\bf 1"o}| da el
+% resultado correcto (|\mit| si es para cursiva). Para usar un tipo
+% nuevo con |\sptext| hay que definir tambi'en las variantes
+% matem'aticas con |\newfam|.
+%
+% \subsection{Funciones matem'aticas}
+%
+% Tradicionalmente, se han formado las abreviaciones
+% de lo que en \TeX\ se conocen como operadores a partir
+% del nombre castellano, lo que implica la presencia del
+% acento en l'im (en sus tres formas |\lim|, |\limsup| y |\liminf|),
+% m'ax, m'in, 'inf y m'od (en sus dos
+% formas |\bmod| y |\pmod|).
+%
+% Con |spanish| pueden seguirse varias convenciones con ayuda
+% de las siguientes 'ordenes:
+% \begin{itemize}
+% \item[$\diamond$] |\accentedoperators| |\unaccentedoperators|\\[1ex]
+% Activa o desactiva los acentos.
+% Por omisi'on se acent'uan, como por ejemplo: $\lim_{x\to 0}(1/x)$
+% (|$\lim_{x\to 0}(1/x)$|).
+%
+% \item[$\diamond$] |\spacedoperators| |\unspacedoperators|\\[1ex]
+% Activa o desactiva el espacio entre "<arc"> y la funci'on.
+% Lo habitual ha sido con espacio; as'i pues, por omisi'on
+% se espacia.
+% \end{itemize}
+%
+% La i sin punto tambi'en es accesible directamente en modo
+% matem'atico con la orden |\dotlessi|, de forma que se puede escribir
+% |\acute{\dotlessi}|. Por ejemplo,
+% |$V_{\mathbf{cr\acute{\dotlessi}t}}$| da
+% $V_{\mathbf{cr\acute{\dotlessi}t}}$.
+%
+% Tambi'en se a'naden |\sen|, |\arcsen|, |\tg| y |\arctg|,
+% que dan las funciones respectivas. Otras funciones trigonom'etricas
+% se encuentran almacenadas en el par'ametro |\spanishoperators|, que
+% inicialmente incluye cotg, cosec, senh y tgh. La raz'on por la que
+% estas funciones se han separado es porque ~---al contrario que sen
+% y tg~--- su forma est'a lejos de estar normalizada en el 'ambito
+% hispanohablante. De esta
+% forma se puede cambiar por otras con, por ejemplo:
+%\begin{verbatim}
+% \renewcommand{\spanishoperators}{ctg arc\,ctg sh ch th}
+%\end{verbatim}
+% (separadas con espacio). Cuando se selecciona |spanish| se crean
+% 'ordenes con esos nombres
+% y que dan esas funciones (siempre con |\nolimits|). Adem'as de
+% las letras sin acentuar se aceptan las 'ordenes |\,| y |\acute|, que
+% se pasan por alto para formar el nombre. \New{4.2}Por ejemplo, |arc\,ctg|
+% se escribe en el documento con
+% |\arcctg|, |M\acute{a}x| como |\Max| y |cr\acute{i}t| como |\crit|
+% (hay que usar |i| y no |\dotlessi|).
+% La orden |\,| responde a |\|(|un|)|spacedoperators|, y |\acute|
+% a |\|(|un|)|accentedoperators|.
+%
+% Conviene que |\spanishoperators| est'e en el pre'ambulo del
+% documento en s'i, antes de |\selectspanish| o de
+% |\begin{document}|.
+%
+% \subsection{Entrecomillados}
+%
+% El entorno |quoting| entrecomilla un
+% texto, a'nadiendo comillas de seguir al comienzo de
+% cada p'arrafo en su interior.\footnote{Se puede encontrar
+% una detallada exposici'on de las comillas en \DTL{44 ss.} De ah'i
+% se ha tomado alg'un ejemplo.}
+% Tambi'en se pueden emplear las
+% abreviaciones |<<| y |>>| que se limitan a llamar a |quoting|, que
+% por ser entorno considera sus cambios internos como locales. (Es
+% decir, |<< ... >>| implica |{<< ... >>}|.)
+% Las abreviaciones |"<| y |">| contin'uan dando sin m'as los
+% caracteres de comillas de abrir y cerrar, respectivamente.
+%
+% Por ejemplo:
+%\begin{verbatim}
+% <<Se llaman <<comillas de seguir>> a las que son de cierre,
+% pero se colocan al comienzo de cada p'arrafo cuando se transcribe
+% un texto entrecomillado con m'as de un p'arrafo.
+%
+% En su interior, como de costumbre, se usan inglesas.>>
+%\end{verbatim}
+% cuyo resultado es:
+% \begin{quotation}\small
+% <<Se llaman <<comillas de seguir>> a las que son de cierre,
+% pero se colocan al comienzo de cada p'arrafo cuando se transcribe
+% un texto entrecomillado con m'as de un p'arrafo.
+%
+% En su interior, como de costumbre, se usan inglesas.>>
+% \end{quotation}
+%
+% Este entorno se puede redefinir, como por ejemplo:
+%\begin{verbatim}
+% \renewenvironment{quoting}{\itshape}{}
+%\end{verbatim}
+% pero en principio no implica un nuevo p'arrafo, ya que
+% est'a pensado para ser usado tambi'en en el texto.
+%
+% En caso de anidar entornos |quoting|, se modifican las comillas
+% de los niveles interiores, que tambi'en se a'naden a las de seguir:
+%\begin{verbatim}
+% <<El di'alogo se desarroll'o de esta forma:
+%
+% <<---Yo no he sido ---grit'o Antonio.
+%
+% ---Pero has colaborado ---asegur'o Rafael>>.
+%
+% Pero all'i no se aclar'o nadie.>>
+%\end{verbatim}
+%
+% \begin{quotation}\small
+% <<El di'alogo se desarroll'o de esta forma:
+%
+% <<---Yo no he sido ---grit'o Antonio.
+%
+% ---Pero has colaborado ---asegur'o Rafael>>.
+%
+% Pero all'i no se aclar'o nadie.>>
+% \end{quotation}
+%
+% \begin{itemize}
+% \item[$\diamond$]
+% |\lquoti| |\rquoti| |\lquotii| |\rquotii| |\lquotiii|
+% |\rquotiii|\\[1ex]
+%
+% Controlan las comillas en |quoting|, seg'un el
+% nivel en que nos encontremos. |\lquoti| son las comillas de abrir
+% m'as exteriores, |\lquotii| las de segundo nivel, etc., y lo mismo
+% para las de cerrar con |\rquoti|... Para las de seguir siempre se
+% usan las de cerrar. Los valores predefinidos est'an en el cuadro 3.
+% \begin{table}
+% \center\small
+% \caption{Entrecomillados}
+% \vspace{1.5ex}
+% \begin{tabular}{l@{\hspace{5em}}l}
+% \toprule
+% |\lquoti| &|"<|\\
+% |\rquoti| &|">|\\
+% |\lquotii| &|``|\\
+% |\rquotii| &|''|\\
+% |\lquotiii| &|`|\\
+% |\rquotiii| &|'|
+% \botrule
+% \end{tabular}
+% \end{table}
+%
+% \newenvironment{dialog}
+% {\def\lquoti{}\begin{quoting}---\ignorespaces}
+% {\def\rquoti{}\end{quoting}}
+%
+% Las comillas de seguir tambi'en se emplean en di'alogos, incluso
+% si no las hay de abrir y cerrar. Con la ayuda del siguiente
+% entorno,
+%\begin{verbatim}
+% \newenvironment{dialog}
+% {\def\lquoti{}\begin{quoting}---\ignorespaces}
+% {\def\rquoti{}\end{quoting}}
+%\end{verbatim}
+% podemos obtener
+% \begin{quotation}\small
+% \begin{dialog}%
+% El di'alogo se desarroll'o de esta forma:
+%
+% <<---Yo no he sido ---grit'o Antonio.
+%
+% ---Pero has colaborado ---asegur'o Rafael>>.
+%
+% Pero all'i no se aclar'o nadie.
+% \end{dialog}
+% \end{quotation}
+%
+% \item[$\diamond$]
+% |\activatequoting \deactivatequoting|\\[1ex]
+%
+% Las incompatibilidades potenciales de estas abreviaciones son
+% enormes. Por ejemplo, en \textsf{ifthen} se cancelan las
+% comparaciones entre n'umeros;\,\footnote{Y en |\string\ifnum|,
+% etc. usado por los desarrolladores en los paquetes.} tambi'en
+% resultan inoperantes |@>>>| y |@<<<| de
+% \textsf{amstex}.\footnote{Aunque en
+% este caso cabe usar los sin'onimos |@)))| y |@(((|.}
+% Por ello, se da posibilidad de cancelarlas y reactivarlas con
+% estas 'ordenes, \New{4.2}aunque si se est'a usando con
+% \textsf{xmltex} ya se
+% desactivan por completo de forma autom'atica. El entorno
+% |quoting| siempre permanece disponible.\footnote{Algunos tipos
+% disponen de esta ligadura de forma interna para
+% generar los caracteres de comillas, por lo que en ellos tambi'en
+% podemos usarlos siempre, aunque los ajustes proporcionados por
+% \textsf{spanish} se pueden perder; por otra parte, tampoco se
+% usan demasiado a menudo.}
+%
+% \end{itemize}
+%
+% \subsection{Selecci'on}
+%
+% Por omisi'on, \babel{} deja <<dormidas>> las lenguas hasta que se
+% llega a |\begin{document}| con el fin de evitar conflictos por
+% las abreviaciones; a cambio,
+% se priva de la posibilidad de usar las lenguas en el pre'ambulo
+% en 'ordenes como |\savebox|, |\title|, |\newtheorem|, etc.
+%
+% La orden |\selectspanish| permite activar |spanish| con sus
+% extensiones y abreviaciones antes de
+% |\begin{document}|.\footnote{Algunos detalles, que
+% apenas afectan a \texttt{spanish}, siguen sin activarse hasta el
+% comienzo del documento.}
+% De esta forma, podr'iamos decir
+%\begin{verbatim}
+% \documentclass{book}
+% \usepackage[T1]{fontenc}
+% \usepackage[spanish]{babel}
+% \usepackage[latin1]{inputenc}
+% \usepackage[centerlast]{caption2}
+% ... % Mas paquetes
+%
+% \selectspanish
+%
+% \title{T'itulo}
+% \author{Autor}
+% \newcommand{\pste}{para"-psicol'ogicamente}
+% \newsavebox{\mybox}
+% \savebox{\mybox}{m'as cosas}
+% ... % Mas definiciones
+%
+% \begin{document}
+%\end{verbatim}
+%
+% \subsection{Espaciado}
+%
+% El espaciado espa'nol difiere relativamente poco del ingl'es;
+% sin embargo, el espacio tras los signos de
+% puntuaci'on debe ser mismo que el que hay entre palabras. O dicho en
+% t'erminos de \TeX, |\frenchspacing| est'a activo.
+%
+% Tambi'en en otros dos sitios hay diferencias. El primero son los
+% puntos suspensivos, para los que se define una nueva orden |\...|
+% que los da menos espaciados; con ella \TeX{} preserva
+% el espacio siguiente. Por ejemplo:
+% \begin{quote}\small\begin{tabbing}
+% |\... y solo estaba\... ella.|\quad\=\... y solo estaba\... ella.
+% \end{tabbing}\end{quote}
+% Tambi'en podr'ian escribirse los tres puntos sin m'as |...|, y en
+% la pr'actica no hay diferencia, a menos que se cambie el
+% valor del espacio tras punto; en ese caso, la forma con barra
+% da los valores apropiados \emph{dentro} de una sentencia, y
+% los tres puntos \emph{al final} de ella. Esta orden no
+% interfiere con el valor original de |\.| (un punto suprascrito).
+%
+% El segundo sitio es un espacio fino antes del signo |\%| (que
+% m'as exactamente es |\,|, con lo cual se puede "<recuperar"> con
+% su opuesto |\!|, si |\%| no sigue a una cifra).
+%
+% \subsection{Miscel'anea}
+%
+% \begin{itemize}
+%
+% \item[$\bullet$] La orden |\lsc| se puede usar para siglas
+% en versalitas.
+% Por ejemplo:
+% \begin{quote}\small\begin{tabbing}
+% |\lsc{RAE}| \quad \= \lsc{RAE}\\
+% |\lsc{ReNFe}| \quad \= \lsc{ReNFe}.
+% \end{tabbing}\end{quote}
+% Tambi'en puede ser 'util para algunos usos de los n'umeros
+% romanos:
+% \begin{quote}\small\begin{tabbing}
+% |siglo \lsc{XVII}| \quad \= siglo \lsc{XVII}\\
+% |cap'itulo \lsc{II}| \quad \= cap'itulo \lsc{II}.
+% \end{tabbing}\end{quote}
+%
+% Para evitar que con un tipo que carece de versalitas acabe
+% apareciendo (por substituci'on) un texto de min'usculas se
+% intenta usar en estos casos las versales \emph{reales}
+% de un tama'no menor. Queda simplemente aceptable, pero es mejor que
+% nada. (\LaTeX\ tiende a sustituir versalitas por versalitas,
+% pero hay excepciones, como con las negritas.)
+%
+% \item[$\bullet$] Se puede escribir |\'i| para |\'{\i}|.
+%
+% \item[$\bullet$] Hay una abreviaci'on adicional como utilidad
+% tipogr'afica m'as que espec'ificamente espa'nola. En ciertos
+% tipos, como Times, el extremo inferior de la barra est'a en la
+% l'inea de base y expresiones como <<am/pm>> resultan poco
+% est'eticas. |"/| produce una barra que, de ser necesario,
+% se baja ligeramente. Computer Modern tiene una barra bien
+% dise'nada y no es posible ilustrar aqu'i este punto
+% pero en todo caso se escribir'ia |am"/pm|.\footnote{En \MEA{141}
+% se recurre a una soluci'on que es la 'unica sencilla en
+% programas de maquetaci'on: usar un cuerpo menor. Pero con \TeX{}
+% es mucho m'as f'acil automatizar las tareas.}
+%
+% \end{itemize}
+%
+% \section{Adaptaci'on}
+% \subsection{Configuraci'on}
+%
+% En sus 'ultimas versiones, \babel{} proporciona la posibilidad
+% de cargar autom'aticamente un archivo con el mismo nombre que
+% el principal, pero con extensi'on |.cfg|. \textsf{Spanish}
+% proporciona unas pocas 'ordenes para ser usadas en este archivo:
+% \begin{itemize}
+% \item[$\diamond$] |\es@activeacute|\\[1ex]
+% Activa las abreviaciones con ap'ostrofos, sin que sea
+% necesario incluir |activeacute| como opci'on en |\usepackage|.
+%
+% \item[$\diamond$] |\es@enumerate{<leveli>}|%
+% |{<levelii>}{<leveliii>}{<leveliv>}|\\[1ex]
+% Cambia los valores preestablecidos por |spanish| para
+% |enumerate|. \textit{leveln} consiste en una letra, que
+% indica qu'e formato tendr'a el n'umero, seguida
+% de cualquier texto. La letra tiene que ser: |1| (ar'abigo),
+% |a| (min'uscula \emph{cursiva}\,\footnote{La letra es cursiva
+% pero no los signos que le puedan seguir. M'as bien deber'ia
+% decirse destacada, ya que se usa |\string\emph|.
+% V'ease \DTL{11}.}), |A| (versal),
+% |i| (romano \emph{versalita}), |I| (romano versal) o
+% finalmente |o| (ordinal\,\footnote{Lo normal es no a'nadir ning'un
+% signo tras ordinal.}).
+%
+% Esta orden no est'a pensada para hacer cambios elaborados, sino
+% s—lo meros reajustes. Los valores preestablecidos
+% equivalen a
+%\begin{verbatim}
+% \es@enumerate{1.}{a)}{1)}{a$'$)}
+%\end{verbatim}
+%
+% \item[$\diamond$] |\es@itemize{<leveli>}|%
+% |{<levelii>}{<leveliii>}{<leveliv>}|\\[1ex]
+% Lo mismo para |itemize|, s'olo que los argumentos se
+% usan de forma literal. Los valores originales de \LaTeX{} son
+% similares a
+%\begin{verbatim}
+% \es@itemize{\textbullet}{\normalfont\bfseries\textendash}
+% {\textasteriskcentered}{\textperiodcentered}
+%\end{verbatim}
+%
+% \item[$\diamond$] |\es@operators|\\[1ex]
+% Todo lo relativo a operadores se cancela con
+%\begin{verbatim}
+% \let\es@operators\relax
+%\end{verbatim}
+% Es buena idea incluirlo si no se van a usar, ya que ahorra memoria.
+%
+% \end{itemize}
+%
+% Otros ajustes 'utiles en este contexto son |\spanishoperators|,
+% |\selectspanish| y |\deactivatequoting|.
+%
+%
+% Recordemos que todos los cambios
+% operados desde este archivo restan compatibilidad al
+% documento, por lo que si se distribuye conviene adjuntarlo
+% con el entorno |filecontents|.
+%
+% \subsection{Otros cambios}
+%
+% \begin{itemize}
+%
+% \item La orden |\addto| permite
+% cambiar alguna de las convenciones internas. Esto resulta
+% interesante con las traducciones, ya que las
+% formas proporcionadas pueden no ser las deseadas.
+% Para ello es necesario que |spanish| no est'e seleccionado.
+% Por ejemplo, para cambiar \emph{'Indice de figuras} por
+% \emph{Lista de figuras}:
+%\begin{verbatim}
+% \addto\captionsspanish{%
+% \def\listfigurename{Lista de figuras}}
+%\end{verbatim}
+%
+% \item Para volver a eliminar la sangr'ia tras secci'on:
+%\begin{verbatim}
+% \def\@afterindentfalse{\let\if@afterindent\iffalse}
+% \@afterindentfalse
+%\end{verbatim}
+%
+% \item Para que |\roman| proporcione n'umeros romanos en
+% min'uscula, seg'un la forma inglesa:
+%\begin{verbatim}
+% \def\@roman#1{\romannumeral #1}
+%\end{verbatim}
+%
+% \item
+% Los extras se encuentran organizados en varios grupos:
+% |\textspanish|, |\mathspanish|,
+% |\shorthandsspanish| y |\layoutspanish|. Pueden
+% cancelarse con:
+%\begin{verbatim}
+% \renewcommand\textspanish{}
+%\end{verbatim}
+%
+% \end{itemize}
+%
+% \section{Formatos distintos a \LaTeXe}
+%
+% El estilo |spanish| funciona con
+% otros formatos, aunque con un subconjunto de las funciones
+% disponibles en \LaTeXe{}. Con Plain hay que hacer
+%\begin{verbatim}
+% \input spanish.sty
+%\end{verbatim}
+% y con \LaTeX2.09, incluir |spanish| entre las opciones de estilo.
+%
+% Se incluyen: traducciones, casi todas las abreviaciones, coma
+% decimal, utilidades para divisi'on de palabras, ordinales en una
+% versi'on simplificada (y no muy elegante), funciones matem'aticas,
+% entrecomillados en \LaTeX2.09, |\'i| y espaciado.
+% La selecci'on de la lengua es inmediata al cargar el archivo.
+%
+% En cambio no est'an disponibles: entrecomillados en Plain,
+% |\lsc| ni las adaptaciones proporcionadas por |\layoutspanish|.
+%
+% A partir de esta versi'on, el archivo de configuraci'on
+% se lee siempre, por lo que aquellos que ya est'an escritos
+% espec'ificamante para \LaTeXe{} pueden presentar problemas si se usan
+% con otros formatos. Si las versiones que se usan no son muy antiguas,
+% se puede comprobar el formato con la variable |\fmtname| que vale
+% |LaTeX2e| o |plain|. Por ejemplo
+%\begin{verbatim}
+% \def\temp{LaTeX2e}
+% \ifx\temp\fmtname
+% ...
+% \fi
+%\end{verbatim}
+%
+% \section{Bibliograf'ias}
+%
+% El archivo |esbst.tex| que se genera con \textsf{spanish}
+% sirve para que la utilidad \textsf{custom-bib} trabaje en
+% conjunci'on con \babel. Define una serie de 'ordenes, que pueden
+% consultarse en el propio archivo, que se utilizan para las
+% traducciones si se selecciona |babel| como lengua al generar un
+% estilo bibliogr'afico.
+%
+% \section{Incompatibilidades con versiones anteriores}
+%
+% \begin{itemize}
+%
+% \item En versiones de cierta antig"uedad, el actual |activeacute|
+% estaba siempre impl'icito, por lo que ahora la abreviaci'on no se
+% reconoce y en su lugar aparecen ap'ostrofos.
+%
+% \item El t'ermino correspondiente a |\tablename| estaba traducido
+% incorrectamente como <<Tabla>>. Como quiera que <<tabla>> es la
+% palabra con que puede aparecer en el propio texto, o bien puede
+% haber un art'iculo femenino ante |\tablename|, puede reponerse el
+% valor antiguo con:
+%\begin{verbatim}
+% \addto\captionsspanish{%
+% \def\tablename{Tabla}%
+% \def\listtablename{\'Indice de tablas}}
+%\end{verbatim}
+%
+% \end{itemize}
+%
+% \section*{Referencias}
+% \addcontentsline{toc}{section}{Referencias}
+%
+% \begingroup
+% \small
+% \leftskip1.5cm \parindent-1.5cm
+%
+% \makebox[1.5cm][l]{\lsc{DRAE}}\textit{Diccionario de la Academia
+% Espa'nola}, Madrid, Espasa-Calpe, 21"a ed., 1992.
+%
+% \makebox[1.5cm][l]{\lsc{DOT}}Jos'e Mart'inez de Sousa,
+% \textit{Diccionario de ortograf'ia t'ecnica},
+% Madrid, Germ'an S'anchez Ruip'erez/Pir'amide, 1987.
+% (Biblioteca del libro.)
+%
+% \makebox[1.5cm][l]{\lsc{DTL}}Jos'e Mart'inez de Sousa,
+% \textit{Diccionario de tipograf'ia y del libro},
+% Madrid, Paraninfo, 3"a ed., 1992.
+%
+% \makebox[1.5cm][l]{\lsc{MEA}}Jos'e Mart'inez de Sousa,
+% \textit{Manual de edici'on y autoedici'on},
+% Madrid, Pir'amide, 1994.
+%
+% \leftskip0pt \parindent0pt \vspace{6pt}
+%
+% {\itshape
+% Como normalmente el primer contacto con \TeX{} es por una tesis,
+% cito libros que
+% est'an relacionados con el tema a los que he tenido acceso.
+% Est'an por orden de preferencia; en particular, los dos 'ultimos me
+% parecen poco recomendables.}
+%
+% \parindent-1.5pc \leftskip1.5pc \vspace{3pt}
+%
+% Umberto Eco,
+% \textit{C'omo se hace una tesis},
+% Barcelona, Gedisa, 1982.
+%
+% Antonia Rigo Arnavat y Gabriel Genesc\`a Due'nas,
+% \textit{C'omo presentar una tesis y trabajos de investigaci'on},
+% Barcelona, Eumo-Octaedro, 2002.
+%
+% Prudenci Comes,
+% \textit{Gu'ia para la redacci'on y presentaci'on de trabajos
+% cient'ificos, informes t'ecnicos y tesinas},
+% Barcelona, Oikos-Tau, 1971.
+%
+% Javier Lasso de la Vega,
+% \textit{C'omo se hace una tesis doctoral},
+% Madrid, Fundacion Universitaria Espa~nola, 1977.
+%
+% Jos'e Romera Castillo y otros,
+% \textit{Manual de estilo},
+% Madrid, Universidad Nacional de Educaci'on a Distancia, 1996.
+%
+% Restituto Sierra Bravo,
+% \textit{Tesis doctorales y trabajos de investigaci'on cient'ifica},
+% Madrid, Paraninfo, 1986.
+%
+% \parindent0pc \leftskip0pc \vspace{6pt}
+%
+% {\itshape
+% Para otras cuestiones tipogr'aficas, las referencias
+% usadas son, entre otras:}
+%
+% \parindent-1.5pc \leftskip1.5pc \vspace{3pt}
+%
+% Javier Bezos,
+% \textit{Tipograf'ia espa'nola con \TeX}, documento electr'onico
+% disponible en
+% \textsf{http://perso.wanadoo.es/jbezos/tipografia.html}.
+%
+% Ra'ul Cabanes Mart'inez,
+% <<El sistema internacional de unidades: ese desconocido>>,
+% \textit{Mundo Electr'onico}, n"o 142, 1984, p'ags.~119~-125.
+%
+% \textit{The Chicago Manual of Style}, Chicago, University of
+% Chicago Press, 14"a~ed., 1993, esp.~p'ags.~333~-335.
+%
+% Jos'e Fern'andez Castillo,
+% \textit{Normas para correctores y compositores tip'ografos},
+% Madrid, Espasa-Calpe, 1959.
+%
+% IRANOR [AENOR], Normas \lsc{UNE} n'umeros 5010 (<<Signos
+% matem'aticos>>), 5028 (<<S'imbolos
+% geom'etricos>>) y 5029 (<<Impresi'on de los
+% s'imbolos de magnitudes y unidades y de los n'umeros>>).
+% [Obsoletas.]
+%
+% Real Academia Espa'nola,
+% \textit{Esbozo de una nueva gram'atica de la
+% lengua espa'nola}, Madrid, Espasa-Calpe, 1973.
+%
+% V.\ Mart'inez Sicluna,
+% \textit{Teor'ia y pr'actica de la tipograf'ia},
+% Barcelona, Gustavo Gili, 1945.
+%
+% Jos'e Mart'inez de Sousa,
+% \textit{Diccionario de ortograf'ia de la lengua espa'nola},
+% Madrid, Paraninfo, 1996.
+%
+% Juan Mart'inez Val, \textit{Tipograf'ia pr'actica}, Madrid,
+% Laberinto, 2002.
+%
+% Juan Jos'e Morato, \textit{Gu'ia pr'actica del compositor
+% tipogr'afico}, Madrid, Hernando, 2"a ed., 1908 (1"a ed., 1900,
+% 3"a ed., 1933).
+%
+% Marion Neubauer,
+% <<Feinheiten bei wissenschaftlichen Publikationen>>,
+% \textit{Die \TeX nisches Kom\"odie}, parte I, vol. 8, n"o 4, 1996,
+% p'ags. 23-40; parte II, vol. 9, n"o 1, 1997, p'ags.~25~-44.
+%
+% Jos'e Polo,
+% \textit{Ortograf'ia y ciencia del lenguaje}, Madrid, Paraninfo,
+% 1974.
+%
+% Pedro Valle,
+% \textit{C'omo corregir sin ofender}, Buenos Aires, Lumen, 1998.
+%
+% Hugh C. Wolfe, <<S'imbolos, unidades y nomenclatura>>,
+% \textit{Enciclopedia de F'isica}, dir. Rita G. Lerner y George L.
+% Trigg, Madrid, Alianza, 1987, t.~2, p'ags.~1423~-1451.
+%
+% \endgroup
+%
+% \end{userdtx}
+%
+% \begin{userdrv}
+%^^A ======= Beginning of text as typeset by user.drv =========
+%
+% \GetFileInfo{spanish.dtx}
+%
+% \section{The Spanish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. The original author from v4.0 on is Javier
+% Bezos. Previous versions were by Julio S\'anchez.} defines all the
+% language-specific macros for the Spanish language.
+%
+% Custumization is made following mainly the
+% books on the subject by Jos\'e Mart\'\i nez de Sousa.
+% By typesetting |spanish.dtx| directly you will get the full
+% documentation (regrettably is in Spanish only, but it is
+% pretty long). References in this part refers to that document.
+% There are several aditional features documented in the Spanish
+% version only.
+%
+% This style provides:
+% \begin{itemize}
+% \item Translations following the International \LaTeX{}
+% conventions, as well as |\today|.
+%
+% \item Shorthands listed in Table~\ref{tab:spanish-quote-def}.
+% Examples in subsection~3.4 are illustrative. Note that
+% |"~| has a special meaning in \textsf{spanish}
+% different to other languages, and is used mainly in linguistic
+% contexts.
+%
+% \begin{table}[htb]
+% \centering
+% \begin{tabular}{lp{8cm}}
+% |'a| & acute accented a. Also for: e, i, o, u (both
+% lowercase and uppercase).\\
+% |'n| & \~n (also uppercase).\\
+% |~n| & \~n (also uppercase). Deprecated.\\
+% |"u| & \"u (also uppercase).\\
+% |"a| & Ordinal numbers (also |"A|, |"o|, |"O|).\\
+% |"c| & \c{c} (also uppercase).\\
+% |"rr| & rr, but -r when hyphenated\\
+% |"-| & Like |\-|, but allowing hyphenation in the rest
+% the word.\\
+% |"=| & Like |-|, but allowing hyphenation in the rest
+% the word.\\
+% |"~| & The hyphen is repeated at the very beginning of
+% the next line if the word is hyphenated at this
+% point.\\
+% |""| & Like |"-| but producing no hyphen sign.\\
+% |~-| & Like |-| but with no break after the hyphen. Also for:
+% en-dashes (|~--|) and em-dashes (|~---|). \\
+% |"/| & A slash slightly lowered, if necessary.\\
+% \verb+"|+ & disable ligatures at this point.\\
+% |"<| & Left guillemets.\\
+% |">| & Right guillemets.\\
+% |<<| & |\begin{quoting}|. (See text.)\\
+% |>>| & |\end{quoting}|. (See text.)
+% \end{tabular}
+% \caption{Extra definitions made by file \file{spanish.ldf}}
+% \label{tab:spanish-quote-def}
+% \end{table}
+%
+% \item |\deactivatetilden| deactivates the |~n| and |~N| shorthands.
+%
+% \item \emph{In math mode} a dot followed by a digit is replaced
+% by a decimal comma.
+%
+% \item Spanish ordinals and abbeviations with |\sptext|
+% as, for instance, |1\sptext{er}|. The
+% preceptive dot is included.
+%
+% \item Accented functions: l\'\i m, m\'ax, m\'\i n, m\'od. You may
+% globally omit the accents with |\unaccentedoperators|. Spaced
+% functions: arc\,cos, etc. You may globally kill that space with
+% |\unspacedoperators|. |\dotlessi| is provided for use in math mode.
+%
+% \item A |quoting| environment and a related pair of shorthands |<<|
+% and |>>|. The command
+% |\deactivatequoting| deactivates these shorthand in case
+% you want to use |<| and |>| in some AMS commands and numerical
+% comparisons.
+%
+% \item The command |\selectspanish| selects the |spanish| language
+% \emph{and} its shorthands. (Intended for the preamble.)
+%
+% \item |\frenchspacing| is used.
+%
+% \item Ellipsis are best typed |...| or, within a sentence, |\...|
+%
+% \item There is a small space before |\%|.
+%
+% \item |\lsc| provides lowercase small caps. (See subsection~3.10.)
+% \end{itemize}
+%
+% Just in case |spanish| is the main language, the group
+% |\layoutspanish| is activated, which modifies the standard
+% classes through the whole document (it cannot be deactivated)
+% in the following way:
+% \begin{itemize}
+% \item Both |enumerate| and |itemize| are adapted to Spanish rules.
+%
+% \item Both |\alph| and |\Alph| include \textit{\~n} after \textit{n}.
+%
+% \item Symbol footmarks are one, two, three, etc., asteriscs.
+%
+% \item |OT1| guillemets are generated with two |lasy| symbols instead
+% of small |\ll| and |\gg|.
+%
+% \item |\roman| is redefined to write small caps roman numerals, since
+% lowercase roman numerals are not allowed. However, \textit{MakeIndex}
+% rejects entries containing pages in that format. The |.idx| file must
+% be preprocessed if the document has this kind of entries with
+% the provided |romanidx.tex| tool---just \TeX{} it and follow the
+% instructions.
+%
+% \item There is a dot after section numbers in titles and toc.
+% \end{itemize}
+% This group is ignored if you write |\selectspanish*| in the
+% preamble.
+%
+% Some additional commands are provided to be used in the
+% |spanish.cfg| file:
+% \begin{itemize}
+% \item With |\es@activeacute| acute accents are always active,
+% overriding the default \textsf{babel} behaviour.
+%
+% \item |\es@enumerate| sets the labels to be used by |enumerate|. The
+% same applies to |\es@itemize| and |itemize|.
+%
+% \item |\es@operators| stores the operator commands.
+% All of them are canceled with
+%\begin{verbatim}
+% \let\es@operators\relax
+%\end{verbatim}
+% \end{itemize}
+% The commands |\deactivatequoting|, |\deactivatetilden| and
+% |\selectspanish| may be used in this file, too.
+%
+% A subset of these commands is provided for
+% use in Plain \TeX{} (with |\input spanish.sty|).
+%
+% \end{userdrv}
+%
+%\StopEventually{}
+%
+%^^A ========== End of manual ===============
+%
+% \begin{userdtx}
+%
+% \section{The Code}
+%
+% \end{userdtx}
+%
+% \begin{userdrv}
+%
+% \subsection{The Code}
+%
+% \end{userdrv}
+%
+% \changes{spanish~4.0f}{99/04/12}{Beginning of changes to follow the
+% doc conventions}
+% \changes{spanish~4.0d}{99/03/26}{Changed some parts for babel.ins
+% to generate the files}
+% \changes{spanish~4.0e}{99/04/10}{Adapted to 3.6k with some minor
+% changes, since most of features intended for 3.7 are included
+% now}
+% \changes{spanish~4.0d}{99/03/26}{Restored the test for \cs{LdfInit}.
+% It is redundant for LaTeX209 but not for plain}
+% \changes{spanish~4.0d}{99/03/29}{With a shoddy piece of work, the
+% plain variant works (at last). Instead of inputting
+% \file{babel.def} we input \file{switch.def}. To be changed, I
+% think, since now \file{plain.def} is read twice}
+% \changes{spanish~4.0e}{99/04/10}{Replaced all instances of
+% allowhyphens by \cs{bbl@allowhyphens}}
+% \changes{spanish~4.0g}{99/05/05}{The code introduced the 99/03/29
+% (see above) has been removed}
+% \changes{spanish~4.1a}{99/12/26}{Added \cs{spanishdecimal}.}
+% \changes{spanish~4.1b}{00/06/16}{Added the Spanish et sign.}
+% \changes{spanish~4.1a}{99/12/29}{Modified \cs{@marginparreset}
+% in order to kill the continuing guillemets.}
+% \changes{spanish~4.1a}{00/01/09}{\cs{sptext} protected.}
+%
+% This file provides definition for both \LaTeXe{} and non
+% \LaTeXe{} formats.
+%
+% Identify the |ldf| file.
+%
+% \changes{spanish~4.0g}{99/05/05}{Replaced \cs{ProvidesFile}
+% by \cs{ProvidesLanguage}}
+% \changes{spanish~4.0j}{99/09/18}{Renamed spanish.tex as spanish.lpf}
+%
+% \begin{macrocode}
+%<*code>
+\ProvidesLanguage{spanish.ldf}
+ [2005/03/31 v4.2b Spanish support from the babel system]
+% \end{macrocode}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{spanish} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@spanish| to see whether we have to do something here.
+%
+% \changes{spanish~4.0a}{98/09/23}{All files renamed from spanishb
+% to spanish as requested by the Spanish TeX list, since this
+% style should replace the current Spanish option. Julio
+% Sanchez gave up supporting his files and he has withdrawn
+% from his TeX activities. The last distributed version as
+% spanishb was 1.1.}
+% \changes{spanish~4.0a}{98/09/12}{Introduced \cs{LdfInit} setup}
+% \begin{macrocode}
+\LdfInit{spanish}\captionsspanish
+\ifx\undefined\l@spanish
+ \@nopatterns{Spanish}
+ \adddialect\l@spanish0
+\fi
+% \end{macrocode}
+%
+% We define some tools which will be used in that style file:
+% (1) we make sure that |~| is active, (2) |\es@delayed| delays
+% the expansion of the code in conditionals (in fact, quite similar
+% to |\bbl@afterfi|).
+%
+% \changes{spanish~4.0a}{98/09/12}{Test for 209 moved from sty}
+% \changes{spanish~4.1a}{99/12/01}{Introduced the \cs{es@delayed}
+% mechanism for ``conflictive'' conditionals.}
+% \begin{macrocode}
+\edef\es@savedcatcodes{%
+ \catcode`\noexpand\~=\the\catcode`\~
+ \catcode`\noexpand\"=\the\catcode`\"}
+\catcode`\~=\active
+\catcode`\"=12
+\long\def\es@delayed#1\then#2\else#3\fi{%
+ #1%
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#2}{#3}}
+% \end{macrocode}
+%
+% Two tests are introduced. The first one tells us if the format is
+% \LaTeXe{}, and the second one if the format is plain or any other.
+% If both are false, the format is \LaTeX2.09{}.
+%
+% \begin{macrocode}
+\es@delayed
+\expandafter\ifx\csname documentclass\endcsname\relax\then
+ \let\ifes@LaTeXe\iffalse
+\else
+ \let\ifes@LaTeXe\iftrue
+\fi
+\es@delayed
+\expandafter\ifx\csname newenvironment\endcsname\relax\then
+ \let\ifes@plain\iftrue
+\else
+ \let\ifes@plain\iffalse
+\fi
+% \end{macrocode}
+%
+% Translations for captions.
+%
+% \changes{spanishb~1.1}{98/03/17}{Corrected \cs{indexname} to the
+% promised text}
+% \changes{spanish~4.1c}{00/10/04}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsspanish{%
+ \def\prefacename{Prefacio}%
+ \def\refname{Referencias}%
+ \def\abstractname{Resumen}%
+ \def\bibname{Bibliograf\'{\i}a}%
+ \def\chaptername{Cap\'{\i}tulo}%
+ \def\appendixname{Ap\'endice}%
+ \def\listfigurename{\'Indice de figuras}%
+ \def\listtablename{\'Indice de cuadros}%
+ \def\indexname{\'Indice alfab\'etico}%
+ \def\figurename{Figura}%
+ \def\tablename{Cuadro}%
+ \def\partname{Parte}%
+ \def\enclname{Adjunto}%
+ \def\ccname{Copia a}%
+ \def\headtoname{A}%
+ \def\pagename{P\'agina}%
+ \def\seename{v\'ease}%
+ \def\alsoname{v\'ease tambi\'en}%
+ \def\proofname{Demostraci\'on}%
+ \def\glossaryname{Glosario}}
+
+\expandafter\ifx\csname chapter\endcsname\relax
+ \addto\captionsspanish{\def\contentsname{\'Indice}}
+\else
+ \addto\captionsspanish{\def\contentsname{\'Indice general}}
+\fi
+% \end{macrocode}
+%
+% And the date.
+% \changes{spanish~4.2a}{03/08/08}{Added the mechanism to
+% select \textit{del} or \textit{de}}
+% \begin{macrocode}
+\def\datespanish{%
+ \def\today{\the\day~de \ifcase\month\or enero\or febrero\or
+ marzo\or abril\or mayo\or junio\or julio\or agosto\or
+ septiembre\or octubre\or noviembre\or diciembre\fi
+ \ de\ifnum\year>1999\es@yearl\fi~\the\year}}
+\def\spanishdatedel{\def\es@yearl{l}}
+\def\spanishdatede{\let\es@yearl\@empty}
+\spanishdatede
+% \end{macrocode}
+%
+% The basic macros to select the language, in the preamble or the
+% config file. Use of |\selectlanguage| should be avoided at this
+% early stage because the active chars are not yet
+% active. |\selectspanish| makes them active.
+%
+% \begin{macrocode}
+\def\selectspanish{%
+ \def\selectspanish{%
+ \def\selectspanish{%
+ \PackageWarning{spanish}{Extra \string\selectspanish ignored}}%
+ \es@select}}
+
+\@onlypreamble\selectspanish
+
+\def\es@select{%
+ \let\es@select\@undefined
+ \selectlanguage{spanish}%
+ \catcode`\"\active\catcode`\~=\active}
+% \end{macrocode}
+%
+% Instead of joining all the extras directly in |\extrasspanish|,
+% we subdivide them in three further groups.
+% \changes{spanish~4.0a}{99/11/30}{The extras subdivided into three
+% further groups.}
+% \changes{spanish~4.2a}{03/08/08}{The dot is deactitated, too}
+% \begin{macrocode}
+\def\extrasspanish{%
+ \textspanish
+ \mathspanish
+ \ifx\shorthandsspanish\@empty
+ \spanishdeactivate{."'~<>}%
+ \languageshorthands{none}%
+ \else
+ \shorthandsspanish
+ \fi}
+\def\noextrasspanish{%
+ \ifx\textspanish\@empty\else
+ \notextspanish
+ \fi
+ \ifx\mathspanish\@empty\else
+ \nomathspanish
+ \fi
+ \ifx\shorthandsspanish\@empty\else
+ \noshorthandsspanish
+ \fi
+ \es@reviveshorthands}
+% \end{macrocode}
+%
+% And the first of these sub-groups is defined.
+%
+% \begin{macrocode}
+\addto\textspanish{%
+ \babel@save\sptext
+ \def\sptext{\protect\es@sptext}}
+% \end{macrocode}
+%
+% The definition of |\sptext| is more elaborated than that of
+% |\textsuperscript|. With uppercase superscript text
+% the scriptscriptsize is used. The mandatory dot is already
+% included. There are two versions, depending on the
+% format.
+%
+% \begin{macrocode}
+\ifes@LaTeXe %<<<<<<
+ \newcommand\es@sptext[1]{%
+ {.\setbox\z@\hbox{8}\dimen@\ht\z@
+ \csname S@\f@size\endcsname
+ \edef\@tempa{\def\noexpand\@tempc{#1}%
+ \lowercase{\def\noexpand\@tempb{#1}}}\@tempa
+ \ifx\@tempb\@tempc
+ \fontsize\sf@size\z@
+ \selectfont
+ \advance\dimen@-1.15ex
+ \else
+ \fontsize\ssf@size\z@
+ \selectfont
+ \advance\dimen@-1.5ex
+ \fi
+ \math@fontsfalse\raise\dimen@\hbox{#1}}}
+\else %<<<<<<
+ \let\sptextfont\rm
+ \newcommand\es@sptext[1]{%
+ {.\setbox\z@\hbox{8}\dimen@\ht\z@
+ \edef\@tempa{\def\noexpand\@tempc{#1}%
+ \lowercase{\def\noexpand\@tempb{#1}}}\@tempa
+ \ifx\@tempb\@tempc
+ \advance\dimen@-0.75ex
+ \raise\dimen@\hbox{$\scriptstyle\sptextfont#1$}%
+ \else
+ \advance\dimen@-0.8ex
+ \raise\dimen@\hbox{$\scriptscriptstyle\sptextfont#1$}%
+ \fi}}
+\fi %<<<<<<
+% \end{macrocode}
+%
+% Now, lowercase small caps. First, we test if there are actual
+% small caps for the current font. If not, faked small caps are
+% used. The \cs{selectfont} in \cs{es@lsc} could seem redundant,
+% but it's not.
+%
+% \changes{spanishb~1.1}{98/05/11}{\cs{es@lsc} rewritten to
+% incorporate the procedure so far available in
+% \cs{roman} only}
+% \changes{spanish~4.0e}{99/04/10}{Added \cs{leavevmode}}
+% \begin{macrocode}
+\ifes@LaTeXe %<<<<<<
+ \addto\textspanish{%
+ \babel@save\lsc
+ \def\lsc{\protect\es@lsc}}
+
+ \def\es@lsc#1{%
+ \leavevmode
+ \hbox{\scshape\selectfont
+ \expandafter\ifx\csname\f@encoding/\f@family/\f@series
+ /n/\f@size\expandafter\endcsname
+ \csname\curr@fontshape/\f@size\endcsname
+ \csname S@\f@size\endcsname
+ \fontsize\sf@size\z@\selectfont
+ \PackageInfo{spanish}{Replacing undefined sc font\MessageBreak
+ shape by faked small caps}%
+ \MakeUppercase{#1}%
+ \else
+ \MakeLowercase{#1}%
+ \fi}}
+\fi %<<<<<<
+% \end{macrocode}
+%
+% The |quoting| environment. This part is not available
+% in Plain, hence the test. Overriding the default |\everypar| is
+% a bit tricky.
+%
+% \begin{macrocode}
+\newif\ifes@listquot
+
+\ifes@plain\else %<<<<<<
+ \csname newtoks\endcsname\es@quottoks
+ \csname newcount\endcsname\es@quotdepth
+
+ \newenvironment{quoting}
+ {\leavevmode
+ \advance\es@quotdepth1
+ \csname lquot\romannumeral\es@quotdepth\endcsname%
+ \ifnum\es@quotdepth=\@ne
+ \es@listquotfalse
+ \let\es@quotpar\everypar
+ \let\everypar\es@quottoks
+ \everypar\expandafter{\the\es@quotpar}%
+ \es@quotpar{\the\everypar
+ \ifes@listquot\global\es@listquotfalse\else\es@quotcont\fi}%
+ \fi
+ \toks@\expandafter{\es@quotcont}%
+ \edef\es@quotcont{\the\toks@
+ \expandafter\noexpand
+ \csname rquot\romannumeral\es@quotdepth\endcsname}}
+ {\csname rquot\romannumeral\es@quotdepth\endcsname}
+
+ \def\lquoti{\guillemotleft{}}
+ \def\rquoti{\guillemotright{}}
+ \def\lquotii{``}
+ \def\rquotii{''}
+ \def\lquotiii{`}
+ \def\rquotiii{'}
+
+ \let\es@quotcont\@empty
+% \end{macrocode}
+%
+% If there is a margin par inside quoting, we don't add the
+% quotes. |\es@listqout| stores the quotes to be used before
+% item labels; otherwise they could appear after the labels.
+%
+% \begin{macrocode}
+ \addto\@marginparreset{\let\es@quotcont\@empty}
+
+ \def\es@listquot{%
+ \csname rquot\romannumeral\es@quotdepth\endcsname
+ \global\es@listquottrue}
+\fi %<<<<<<
+% \end{macrocode}
+%
+% Now, the |\frenchspacing|, followed by |\...| and |\%|
+%
+% \changes{spanish~4.0e}{99/04/10}{Added ignorespaces to \cs{es@dots}}
+% \changes{spanish~4.1d}{01/09/12}{Now there are two versions of
+% percent sign}
+% \begin{macrocode}
+\addto\textspanish{\bbl@frenchspacing}
+\addto\notextspanish{\bbl@nonfrenchspacing}
+
+\addto\textspanish{%
+ \let\es@save@dot\.%
+ \babel@save\.%
+ \def\.{\@ifnextchar.{\es@dots}{\es@save@dot}}}
+
+\def\es@dots..{\leavevmode\hbox{...}\spacefactor\@M}
+
+\ifes@LaTeXe %<<<<<<
+ \addto\textspanish{%
+ \let\percentsign\%%
+ \babel@save\%%
+ \def\%{\unskip\,\percentsign{}}}
+\else
+ \addto\textspanish{%
+ \let\percentsign\%%
+ \babel@save\%%
+ \def\%{\unskip\ifmmode\,\else$\m@th\,$\fi\percentsign{}}}
+\fi
+% \end{macrocode}
+%
+% We follow with the math group.
+% It's not easy to add an accent in an operator.
+% The difficulty is that we must avoid using text (that is,
+% |\mbox|) because we have no control on font and size, and
+% at time we should access |\i|, which is a text
+% command forbidden in math mode. |\dotlessi| must be
+% converted to uppercase if necessary in \LaTeXe. There are
+% two versions, depending on the format.
+%
+% \changes{spanishb~1.1}{98/04/01}{dotless math i handling
+% rewritten}
+% \changes{spanishb~1.1}{98/05/13}{Again rewriten in full. Now
+% that character is accesible as \cs{dotlessi}}
+% \changes{spanish~4.0c}{98/12/07}{Moved from its original place below.
+% Decimal values replaced by hex ones.}
+% \changes{spanish~4.0k}{99/10/12}{Minor improvementes in
+% \cs{es@dotlessi}. Now it behaves like the dotlessi.sty package}
+% \changes{spanish~4.1f}{02/05/17}{\cs{i} not used directly in
+% the upper/lowercase list}
+% \begin{macrocode}
+\addto\mathspanish{%
+ \babel@save\dotlessi
+ \def\dotlessi{\protect\es@dotlessi}}
+
+\let\nomathspanish\relax %% Unused, but called
+
+\ifes@LaTeXe %<<<<<<
+ \def\es@texti{\i}
+ \addto\@uclclist{\dotlessi\es@texti}
+\fi %<<<<<<
+
+\ifes@LaTeXe %<<<<<<
+ \def\es@dotlessi{%
+ \ifmmode
+ {\ifnum\mathgroup=\m@ne
+ \imath
+ \else
+ \count@\escapechar \escapechar=\m@ne
+ \expandafter\expandafter\expandafter
+ \split@name\expandafter\string\the\textfont\mathgroup\@nil
+ \escapechar=\count@
+ \@ifundefined{\f@encoding\string\i}%
+ {\edef\f@encoding{\string?}}{}%
+ \expandafter\count@\the\csname\f@encoding\string\i\endcsname
+ \advance\count@"7000
+ \mathchar\count@
+ \fi}%
+ \else
+ \i
+ \fi}
+\else %<<<<<<
+ \def\es@dotlessi{%
+ \ifmmode
+ \mathchar"7010
+ \else
+ \i
+ \fi}
+\fi %<<<<<<
+% \end{macrocode}
+%
+% The switches for accents and spaces in math.
+%
+%\changes{spanish~4.0b}{98/11/10}{Added missing \cs{nolimits}}
+%\changes{spanish~4.0c}{98/11/30}{Merged \cs{es@op@i} and
+% \cs{es@op@a} into a single command. The (re)defided commands
+% have been changed as suggested by JoseRa Portillo and Juan Luis
+% Varona. Now it conforms the UNE 5010 norm. Code is no
+% longer duplicated--\cs{operator@font} is defined for lplain
+% instead}
+%\changes{spanish~4.0c}{98/12/10}{Removed the explicit
+% trigonometric declaration. While some functions are
+% preceptive (sen, tg) some other are optional and
+% defined in \cs{spanishoperators}. This is because there
+% is no norm in Spanish and there is quite a chaos in their
+% form. Restored the forms of v 1.1}
+%\changes{spanish~4.0k}{99/10/13}{Restored the \cs{es@op@i}
+% command, because we have to discriminate \cs{dotlessi} and i}
+%
+% \begin{macrocode}
+\def\accentedoperators{%
+ \def\es@op@ac##1{\acute{##1}}%
+ \def\es@op@i{\acute{\dotlessi}}}
+\def\unaccentedoperators{%
+ \def\es@op@ac##1{##1}%
+ \def\es@op@i{i}}
+\accentedoperators
+
+\def\spacedoperators{\let\es@op@sp\,}
+\def\unspacedoperators{\let\es@op@sp\@empty}
+\spacedoperators
+% \end{macrocode}
+%
+% The operators are stored in |\es@operators|, which in turn is
+% included in the math group. Since |\operator@font| is
+% defined in \LaTeXe{} only, we defined in the plain variant.
+%
+% \changes{spanish~4.0g}{99/05/05}{Restored the assignment of
+% \cs{operator@font} which was misteriously missing}
+% \changes{spanish~4.0i}{99/06/21}{Replaced wrong \cs{spanishoperators}
+% by \cs{es@b}}
+% \changes{spanish~4.0j}{99/09/17}{Removed an extra line in the lplain
+% option}
+% \changes{spanish~4.2a}{03/08/08}{Names including \cs{acute} can be
+% formed}
+%
+% \begin{macrocode}
+\addto\mathspanish{\es@operators}
+
+\ifes@LaTeXe\else %<<<<<<
+ \let\operator@font\rm
+ \def\@empty{}
+\fi %<<<<<<
+
+\def\es@operators{%
+ \babel@save\lim
+ \def\lim{\mathop{\operator@font l\protect\es@op@i m}}%
+ \babel@save\limsup
+ \def\limsup{\mathop{\operator@font l\es@op@i m\,sup}}%
+ \babel@save\liminf
+ \def\liminf{\mathop{\operator@font l\es@op@i m\,inf}}%
+ \babel@save\max
+ \def\max{\mathop{\operator@font m\es@op@ac ax}}%
+ \babel@save\inf
+ \def\inf{\mathop{\operator@font \protect\es@op@i nf}}%
+ \babel@save\min
+ \def\min{\mathop{\operator@font m\protect\es@op@i n}}%
+ \babel@save\bmod
+ \def\bmod{%
+ \nonscript\mskip-\medmuskip\mkern5mu%
+ \mathbin{\operator@font m\es@op@ac od}\penalty900\mkern5mu%
+ \nonscript\mskip-\medmuskip}%
+ \babel@save\pmod
+ \def\pmod##1{%
+ \allowbreak\mkern18mu({\operator@font m\es@op@ac od}\,\,##1)}%
+ \def\es@a##1 {%
+ \es@delayed
+ \if^##1^\then % is it empty? do nothing and continue
+ \es@a
+ \else
+ \es@delayed
+ \if&##1\then % is it &? do nothing and finish
+ \else
+ \begingroup
+ \let\,\@empty % \, is ignored when def'ing the macro name
+ \let\acute\@firstofone % same
+ \edef\es@b{\expandafter\noexpand\csname##1\endcsname}%
+ \def\,{\noexpand\es@op@sp}%
+ \def\acute####1{%
+ \if i####1%
+ \noexpand\es@op@i
+ \else
+ \noexpand\es@op@ac####1%
+ \fi}%
+ \edef\es@a{\endgroup
+ \noexpand\babel@save\expandafter\noexpand\es@b
+ \def\expandafter\noexpand\es@b{%
+ \mathop{\noexpand\operator@font##1}\nolimits}}%
+ \es@a % It restores itself
+ \es@a
+ \fi
+ \fi}%
+ \let\es@b\spanishoperators
+ \addto\es@b{ }%
+ \expandafter\es@a\es@b sen tg arc\,sen arc\,cos arc\,tg & }
+
+\def\spanishoperators{cotg cosec senh tgh}
+% \end{macrocode}
+%
+% Now comes the text shorthands. They are grouped in
+% |\shorthandsspanish| and this style performs some
+% operations before the babel shortands are called.
+% The goals are to allow espression like |$a^{x'}$|
+% and to deactivate the shorthands making them of
+% category `other.' After providing a |\'i| shorthand,
+% the new macros are defined.
+%
+% \changes{spanish~4.1a}{99/11/30}{Added basic code for
+% spanish shorthands.}
+% \changes{spanish~4.1a}{99/12/01}{Debugged and added support
+% for the babel groups.}
+% \changes{spanish~4.1c}{00/10/04}{Revised so that it
+% now uses the babel shorthands}
+% \changes{spanish~4.2a}{03/08/08}{Deactivation of dot as
+% a special case}
+% \begin{macrocode}
+\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'{\i}}
+
+\def\es@set@shorthand#1{%
+ \expandafter\edef\csname es@savecat\string#1\endcsname
+ {\the\catcode`#1}%
+ \initiate@active@char{#1}%
+ \catcode`#1=\csname es@savecat\string#1\endcsname\relax
+ \expandafter\let\csname es@math\string#1\expandafter\endcsname
+ \csname normal@char\string#1\endcsname}
+
+\def\es@use@shorthand{%
+ \es@delayed
+ \ifx\thepage\relax\then
+ \string
+ \else{%
+ \es@delayed
+ \ifx\protect\@unexpandable@protect\then
+ \noexpand
+ \else
+ \es@use@sh
+ \fi}%
+ \fi}
+
+\def\es@text@sh#1{\csname active@char\string#1\endcsname}
+\def\es@math@sh#1{\csname es@math\string#1\endcsname}
+
+\def\es@use@sh{%
+ \es@delayed
+ \if@safe@actives\then
+ \string
+ \else{%
+ \es@delayed
+ \ifmmode\then
+ \es@math@sh
+ \else
+ \es@text@sh
+ \fi}%
+ \fi}
+
+\gdef\es@activate#1{%
+ \begingroup
+ \lccode`\~=`#1
+ \lowercase{%
+ \endgroup
+ \def~{\es@use@shorthand~}}}
+
+\def\spanishdeactivate#1{%
+ \@tfor\@tempa:=#1\do{\expandafter\es@spdeactivate\@tempa}}
+
+\def\es@spdeactivate#1{%
+ \if.#1%
+ \mathcode`\.=\es@period@code
+ \else
+ \begingroup
+ \lccode`\~=`#1
+ \lowercase{%
+ \endgroup
+ \expandafter\let\expandafter~%
+ \csname normal@char\string#1\endcsname}%
+ \catcode`#1\csname es@savecat\string#1\endcsname\relax
+ \fi}
+
+\def\es@reviveshorthands{%
+ \es@restore{"}\es@restore{~}%
+ \es@restore{<}\es@restore{>}%
+ \es@quoting}
+
+\def\es@restore#1{%
+ \catcode`#1=\active
+ \begingroup
+ \lccode`\~=`#1
+ \lowercase{%
+ \endgroup
+ \bbl@deactivate{~}}}
+% \end{macrocode}
+%
+% But \textsf{spanish} allows two category codes for |'|,
+% so both should be taken into account in \cs{bbl@pr@m@s}.
+%
+% \changes{spanish~4.1c}{00/10/03}{Added support for primes
+% which are either `active' or `other'}
+% \begin{macrocode}
+\begingroup
+\catcode`\'=12
+\lccode`~=`' \lccode`'=`'
+\lowercase{%
+\gdef\bbl@pr@m@s{%
+ \es@delayed
+ \ifx~\@let@token\then
+ \pr@@@s
+ \else
+ {\es@delayed
+ \ifx'\@let@token\then
+ \pr@@@s
+ \else
+ {\es@delayed
+ \ifx^\@let@token\then
+ \pr@@@t
+ \else
+ \egroup
+ \fi}%
+ \fi}%
+ \fi}}
+\endgroup
+% \end{macrocode}
+%
+% \changes{spanishb~1.1}{98/05/15}{Rewritten part}
+% \changes{spanish~4.0c}{98/12/07}{Optimized a bit}
+%
+% \begin{macrocode}
+\expandafter\ifx\csname @tabacckludge\endcsname\relax
+ \let\es@tak\a
+\else
+ \let\es@tak\@tabacckludge
+\fi
+
+\ifes@LaTeXe %<<<<<<
+ \def\@tabacckludge#1{\expandafter\es@tak\string#1}
+ \let\a\@tabacckludge
+\else\ifes@plain %<<<<<<
+ \def\@tabacckludge#1{\csname\string#1\endcsname}
+\else %<<<<<<
+ \def\@tabacckludge#1{\csname a\string#1\endcsname}
+\fi\fi %<<<<<<
+
+\expandafter\ifx\csname add@accent\endcsname\relax
+ \def\add@accent#1#2{\accent#1 #2}
+\fi
+% \end{macrocode}
+%
+% Instead of redefining |\'|, we redefine the internal
+% macro for the OT1 encoding.
+% \changes{spanish~4.1f}{02/05/17}{The spacefactor is restored
+% with the method used in LaTeX2e}
+% \begin{macrocode}
+\ifes@LaTeXe %<<<<<<
+ \def\es@accent#1#2#3{%
+ \expandafter\@text@composite
+ \csname OT1\string#1\endcsname#3\@empty\@text@composite
+ {\bbl@allowhyphens\add@accent{#2}{#3}\bbl@allowhyphens
+ \setbox\@tempboxa\hbox{#3%
+ \global\mathchardef\accent@spacefactor\spacefactor}%
+ \spacefactor\accent@spacefactor}}
+\else %<<<<<<
+ \def\es@accent#1#2#3{%
+ \bbl@allowhyphens\add@accent{#2}{#3}\bbl@allowhyphens
+ \spacefactor\sfcode`#3 }
+\fi %<<<<<<
+% \end{macrocode}
+%
+% The shorthands are activated in the aux file. Now, we begin
+% the shorthands group.
+%
+% \changes{spanish~4.0j}{99/09/15}{Added shorthands for \cs{protect}
+% following active chars. This way, they work in headers}
+% \changes{spanish~4.0l}{99/11/13}{Added the \cs{es@activate}
+% command, which makes the shorthands more robust in math mode.
+% In particular, any of them may be followed by a closing brace}
+% \begin{macrocode}
+\addto\shorthandsspanish{\languageshorthands{spanish}}
+\let\noshorthandsspanish\relax
+% \end{macrocode}
+%
+% First, decimal comma.
+%
+% \changes{spanish~4.1c}{00/10/03}{Removed an unnecessary macro.}
+% \begin{macrocode}
+\def\spanishdecimal#1{\def\es@decimal{{#1}}}
+\def\decimalcomma{\spanishdecimal{,}}
+\def\decimalpoint{\spanishdecimal{.}}
+\decimalcomma
+
+\es@set@shorthand{.}
+
+\@namedef{es@math\string.}{%
+ \@ifnextchar\egroup
+ {\mathchar\es@period@code\relax}%
+ {\es@text@sh.}}
+
+\declare@shorthand{system}{.}{\mathchar\es@period@code\relax}
+% \end{macrocode}
+%
+% \changes{spanish~4.0a}{98/09/10}{After the . is activated, it is
+% redefined to avoid errors if followed by a closing brace.
+% Changed \cs{edef} by \cs{mathchardef}. Use
+% \cs{babel@savevariable}instead of \cs{noextrasspanish}.}
+% \changes{spanish~4.0e}{99/04/10}{The catcode is restored in
+% the aux file, too}
+% \begin{macrocode}
+\addto\shorthandsspanish{%
+ \mathchardef\es@period@code\the\mathcode`\.%
+ \babel@savevariable{\mathcode`\.}%
+ \mathcode`\.="8000 %
+ \es@activate{.}}
+
+\AtBeginDocument{%
+ \catcode`\.=12
+ \if@filesw
+ \immediate\write\@mainaux{%
+ \string\catcode`\string\.=12}%
+ \fi}
+
+\declare@shorthand{spanish}{.1}{\es@decimal1}
+\declare@shorthand{spanish}{.2}{\es@decimal2}
+\declare@shorthand{spanish}{.3}{\es@decimal3}
+\declare@shorthand{spanish}{.4}{\es@decimal4}
+\declare@shorthand{spanish}{.5}{\es@decimal5}
+\declare@shorthand{spanish}{.6}{\es@decimal6}
+\declare@shorthand{spanish}{.7}{\es@decimal7}
+\declare@shorthand{spanish}{.8}{\es@decimal8}
+\declare@shorthand{spanish}{.9}{\es@decimal9}
+\declare@shorthand{spanish}{.0}{\es@decimal0}
+% \end{macrocode}
+%
+% Now accents and tools
+%
+% \changes{spanish~4.0d}{99/03/26}{Removed the tilde settings
+% because they are included in babel.def}
+% \changes{spanish~4.0b}{98/10/02}{Introduced \cs{es@umlaut} to allow
+% further division in words containing g\"u}
+% \changes{spanish~4.0c}{98/12/02}{Added missing space at the end
+% of \cs{es@umlaut}}
+% \begin{macrocode}
+\es@set@shorthand{"}
+\def\es@umlaut#1{%
+ \bbl@allowhyphens\add@accent{127}#1\bbl@allowhyphens
+ \spacefactor\sfcode`#1 }
+% \end{macrocode}
+%
+% We override the default |"| of babel, intended for german.
+%
+% \begin{macrocode}
+\ifes@LaTeXe %<<<<<<
+ \addto\shorthandsspanish{%
+ \es@activate{"}%
+ \es@activate{~}%
+ \babel@save\bbl@umlauta
+ \let\bbl@umlauta\es@umlaut
+ \expandafter\babel@save\csname OT1\string\~\endcsname
+ \expandafter\def\csname OT1\string\~\endcsname{\es@accent\~{126}}%
+ \expandafter\babel@save\csname OT1\string\'\endcsname
+ \expandafter\def\csname OT1\string\'\endcsname{\es@accent\'{19}}}
+\else %<<<<<<
+ \addto\shorthandsspanish{%
+ \es@activate{"}%
+ \es@activate{~}%
+ \babel@save\bbl@umlauta
+ \let\bbl@umlauta\es@umlaut
+ \babel@save\~%
+ \def\~{\es@accent\~{126}}%
+ \babel@save\'%
+ \def\'#1{\if#1i\es@accent\'{19}\i\else\es@accent\'{19}{#1}\fi}}
+\fi %<<<<<<
+% \end{macrocode}
+% \changes{spanish~4.0c}{98/11/19}{Subtituted
+% \cs{char}\cs{hyphenchar}\cs{font} for some instances of -}
+% \changes{spanish~4.0h}{98/06/06}{Added \cs{deactivatetilden}}
+% \changes{spanish~4.2a}{03/08/08}{Added raised ?` and !`}
+% \changes{spanish~4.2b}{03/09/12}{Added er and ER}
+% \begin{macrocode}
+\declare@shorthand{spanish}{"a}{\protect\es@sptext{a}}
+\declare@shorthand{spanish}{"A}{\protect\es@sptext{A}}
+\declare@shorthand{spanish}{"o}{\protect\es@sptext{o}}
+\declare@shorthand{spanish}{"O}{\protect\es@sptext{O}}
+\declare@shorthand{spanish}{"e}{\protect\es@sptext@r{e}}
+\declare@shorthand{spanish}{"E}{\protect\es@sptext@r{E}}
+
+\def\es@sptext@r#1#2{\es@sptext{#1#2}}
+
+\declare@shorthand{spanish}{"u}{\"u}
+\declare@shorthand{spanish}{"U}{\"U}
+
+\declare@shorthand{spanish}{"c}{\c{c}}
+\declare@shorthand{spanish}{"C}{\c{C}}
+
+\declare@shorthand{spanish}{"<}{\guillemotleft{}}
+\declare@shorthand{spanish}{">}{\guillemotright{}}
+\declare@shorthand{spanish}{"-}{\bbl@allowhyphens\-\bbl@allowhyphens}
+\declare@shorthand{spanish}{"=}%
+ {\bbl@allowhyphens\char\hyphenchar\font\hskip\z@skip}
+\declare@shorthand{spanish}{"~}
+ {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
+ {\char\hyphenchar\font}{\char\hyphenchar\font}\bbl@allowhyphens}
+\declare@shorthand{spanish}{"r}
+ {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
+ {}{r}\bbl@allowhyphens}
+\declare@shorthand{spanish}{"R}
+ {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
+ {}{R}\bbl@allowhyphens}
+\declare@shorthand{spanish}{"y}
+ {\@ifundefined{scalebox}%
+ {\ensuremath{\tau}}%
+ {\raisebox{1ex}{\scalebox{-1}{\resizebox{.45em}{1ex}{2}}}}}
+\declare@shorthand{spanish}{""}{\hskip\z@skip}
+\declare@shorthand{spanish}{"/}
+ {\setbox\z@\hbox{/}%
+ \dimen@\ht\z@
+ \advance\dimen@-1ex
+ \advance\dimen@\dp\z@
+ \dimen@.31\dimen@
+ \advance\dimen@-\dp\z@
+ \ifdim\dimen@>0pt
+ \kern.01em\lower\dimen@\box\z@\kern.03em
+ \else
+ \box\z@
+ \fi}
+\declare@shorthand{spanish}{"?}
+ {\setbox\z@\hbox{?`}%
+ \leavevmode\raise\dp\z@\box\z@}
+\declare@shorthand{spanish}{"!}
+ {\setbox\z@\hbox{!`}%
+ \leavevmode\raise\dp\z@\box\z@}
+
+\es@set@shorthand{~}
+\declare@shorthand{spanish}{~n}{\~n}
+\declare@shorthand{spanish}{~N}{\~N}
+\declare@shorthand{spanish}{~-}{%
+ \leavevmode
+ \bgroup
+ \let\@sptoken\es@dashes % This assignation changes the
+ \@ifnextchar-% \@ifnextchar behaviour
+ {\es@dashes}%
+ {\hbox{\char\hyphenchar\font}\egroup}}
+\def\es@dashes-{%
+ \@ifnextchar-%
+ {\bbl@allowhyphens\hbox{---}\bbl@allowhyphens\egroup\@gobble}%
+ {\bbl@allowhyphens\hbox{--}\bbl@allowhyphens\egroup}}
+
+\def\deactivatetilden{%
+ \expandafter\let\csname spanish@sh@\string~@n@\endcsname\relax
+ \expandafter\let\csname spanish@sh@\string~@N@\endcsname\relax}
+% \end{macrocode}
+%
+% The shorthands for |quoting|.
+%
+% \changes{spanish~4.1d}{01/09/10}{Disabled if in xmltex}
+% \begin{macrocode}
+\expandafter\ifx\csname XML@catcodes\endcsname\relax
+ \addto\es@select{%
+ \catcode`\<\active\catcode`\>=\active
+ \es@quoting}
+
+ \es@set@shorthand{<}
+ \es@set@shorthand{>}
+
+ \declare@shorthand{system}{<}{\csname normal@char\string<\endcsname}
+ \declare@shorthand{system}{>}{\csname normal@char\string>\endcsname}
+
+ \addto\shorthandsspanish{%
+ \es@activate{<}%
+ \es@activate{>}}
+% \end{macrocode}
+%
+% \changes{spanish~4.0e}{99/04/10}{\cs{es@quoting} is written to the
+% aux file, too}
+% \begin{macrocode}
+ \ifes@LaTeXe %<<<<<<
+ \AtBeginDocument{%
+ \es@quoting
+ \if@filesw
+ \immediate\write\@mainaux{\string\es@quoting}%
+ \fi}%
+ \fi %<<<<<<
+
+ \def\activatequoting{%
+ \catcode`>=\active \catcode`<=\active
+ \let\es@quoting\activatequoting}
+ \def\deactivatequoting{%
+ \catcode`>=12 \catcode`<=12
+ \let\es@quoting\deactivatequoting}
+
+ \declare@shorthand{spanish}{<<}{\begin{quoting}}
+ \declare@shorthand{spanish}{>>}{\end{quoting}}
+\fi
+
+\let\es@quoting\relax
+\let\deactivatequoting\relax
+\let\activatequoting\relax
+% \end{macrocode}
+%
+% The acute accents are stored in a macro. If |activeacute| was set
+% as an option it's executed. If not is not deleted for a possible
+% later use in the |cfg| file. In non \LaTeXe{} formats is always
+% executed.
+%
+% \changes{spanish~4.0l}{99/11/12}{We make a preevaluation of acute;
+% in math mode, the shorthand mechanism is bypassed. That's done
+% *after* the test of the protection status.}
+% \begin{macrocode}
+\def\es@activeacute{%
+ \es@set@shorthand{'}%
+ \addto\shorthandsspanish{\es@activate{'}}%
+ \addto\es@reviveshorthands{\es@restore{'}}%
+ \addto\es@select{\catcode`'=\active}%
+ \declare@shorthand{spanish}{'a}{\@tabacckludge'a}%
+ \declare@shorthand{spanish}{'A}{\@tabacckludge'A}%
+ \declare@shorthand{spanish}{'e}{\@tabacckludge'e}%
+ \declare@shorthand{spanish}{'E}{\@tabacckludge'E}%
+ \declare@shorthand{spanish}{'i}{\@tabacckludge'i}%
+ \declare@shorthand{spanish}{'I}{\@tabacckludge'I}%
+ \declare@shorthand{spanish}{'o}{\@tabacckludge'o}%
+ \declare@shorthand{spanish}{'O}{\@tabacckludge'O}%
+ \declare@shorthand{spanish}{'u}{\@tabacckludge'u}%
+ \declare@shorthand{spanish}{'U}{\@tabacckludge'U}%
+ \declare@shorthand{spanish}{'n}{\~n}%
+ \declare@shorthand{spanish}{'N}{\~N}%
+ \declare@shorthand{spanish}{''}{\textquotedblright}%
+ \let\es@activeacute\relax}
+
+\ifes@LaTeXe %<<<<<<
+ \@ifpackagewith{babel}{activeacute}{\es@activeacute}{}
+\else %<<<<<<
+ \es@activeacute
+\fi %<<<<<<%
+% \end{macrocode}
+%
+% And the customization. By default these macros only
+% store the values and do nothing.
+%
+% \begin{macrocode}
+\def\es@enumerate#1#2#3#4{%
+ \def\es@enum{{#1}{#2}{#3}{#4}}}
+
+\def\es@itemize#1#2#3#4{%
+ \def\es@item{{#1}{#2}{#3}{#4}}}
+% \end{macrocode}
+%
+% The part formerly in the |.lld| file comes here. It performs
+% layout adaptation of \LaTeX{} to ``orthodox'' Spanish rules.
+% \changes{spanish~4.1c}{00/09/30}{The box used in itemize made
+% slightly smaller (.1ex).}
+% \changes{spanish~4.1d}{02/01/25}{Removed extra \cs{enspace}
+% which formatted differently \cs{item} with brackets.}
+% \changes{spanish~4.2a}{03/08/08}{Added \cs{spanishsignitems}}
+% \changes{spanish~4.2a}{03/08/08}{Mispaced \cs{es@enumerate}
+% and \cs{es@itemize} moved into \cs{layoutspanish}}
+% \changes{spanish~4.2b}{03/09/12}{If an entry toc has an
+% empty \cs{numberline} the dot is not printed}
+% \begin{macrocode}
+\ifes@LaTeXe %<<<<<<
+
+\es@enumerate{1.}{a)}{1)}{a$'$}
+\def\spanishdashitems{\es@itemize{---}{---}{---}{---}}
+\def\spanishsymbitems{%
+ \es@itemize
+ {\leavevmode\hbox to 1.2ex
+ {\hss\vrule height .9ex width .7ex depth -.2ex\hss}}%
+ {\textbullet}%
+ {$\m@th\circ$}%
+ {$\m@th\diamond$}}
+\def\spanishsignitems{%
+ \es@itemize
+ {\textbullet}%
+ {$\m@th\circ$}%
+ {$\m@th\diamond$}%
+ {$\m@th\triangleright$}}
+\spanishsymbitems
+
+\def\es@enumdef#1#2#3\@@{%
+ \if#21%
+ \@namedef{theenum#1}{\arabic{enum#1}}%
+ \else\if#2a%
+ \@namedef{theenum#1}{\emph{\alph{enum#1}}}%
+ \else\if#2A%
+ \@namedef{theenum#1}{\Alph{enum#1}}%
+ \else\if#2i%
+ \@namedef{theenum#1}{\roman{enum#1}}%
+ \else\if#2I%
+ \@namedef{theenum#1}{\Roman{enum#1}}%
+ \else\if#2o%
+ \@namedef{theenum#1}{\arabic{enum#1}\protect\es@sptext{o}}%
+ \fi\fi\fi\fi\fi\fi
+ \toks@\expandafter{\csname theenum#1\endcsname}
+ \expandafter\edef\csname labelenum#1\endcsname
+ {\noexpand\es@listquot\the\toks@#3}}
+
+\addto\layoutspanish{%
+ \def\es@enumerate##1##2##3##4{%
+ \es@enumdef{i}##1\@empty\@empty\@@
+ \es@enumdef{ii}##2\@empty\@empty\@@
+ \es@enumdef{iii}##3\@empty\@empty\@@
+ \es@enumdef{iv}##4\@empty\@empty\@@}%
+ \def\es@itemize##1##2##3##4{%
+ \def\labelitemi{\es@listquot##1}%
+ \def\labelitemii{\es@listquot##2}%
+ \def\labelitemiii{\es@listquot##3}%
+ \def\labelitemiv{\es@listquot##4}}%
+ \def\p@enumii{\theenumi}%
+ \def\p@enumiii{\theenumi\theenumii}%
+ \def\p@enumiv{\p@enumiii\theenumiii}%
+ \expandafter\es@enumerate\es@enum
+ \expandafter\es@itemize\es@item
+ \DeclareTextCommand{\guillemotleft}{OT1}{%
+ \ifmmode\ll
+ \else
+ \save@sf@q{\penalty\@M
+ \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
+ \char40 \kern-0.19em\char40 }}%
+ \fi}%
+ \DeclareTextCommand{\guillemotright}{OT1}{%
+ \ifmmode\gg
+ \else
+ \save@sf@q{\penalty\@M
+ \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
+ \char41 \kern-0.19em\char41 }}%
+ \fi}%
+ \def\@fnsymbol##1%
+ {\ifcase##1\or*\or**\or***\or****\or
+ *****\or******\else\@ctrerr\fi}%
+ \def\@alph##1%
+ {\ifcase##1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or \~n\or o\or p\or q\or r\or s\or t\or u\or v\or
+ w\or x\or y\or z\else\@ctrerr\fi}%
+ \def\@Alph##1%
+ {\ifcase##1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or \~N\or O\or P\or Q\or R\or S\or T\or U\or V\or
+ W\or X\or Y\or Z\else\@ctrerr\fi}%
+ \let\@afterindentfalse\@afterindenttrue
+ \@afterindenttrue
+ \def\@seccntformat##1{\csname the##1\endcsname.\quad}%
+ \def\numberline##1{\hb@xt@\@tempdima{##1\if&##1&\else.\fi\hfil}}%
+ \def\@roman##1{\protect\es@roman{\number##1}}%
+ \def\es@roman##1{\protect\es@lsc{\romannumeral##1}}%
+ \def\esromanindex##1##2{##1{\protect\es@lsc{##2}}}}
+% \end{macrocode}
+%
+% We need to execute the following code when babel has been
+% run, in order to see if |spanish| is the main language.
+%
+% \begin{macrocode}
+\AtEndOfPackage{%
+ \let\es@activeacute\@undefined
+ \def\bbl@tempa{spanish}%
+ \ifx\bbl@main@language\bbl@tempa
+ \AtBeginDocument{\layoutspanish}%
+ \addto\es@select{%
+ \@ifstar{\let\layoutspanish\relax}%
+ {\layoutspanish\let\layoutspanish\relax}}%
+ \fi
+ \selectspanish}
+
+\fi %<<<<<<
+% \end{macrocode}
+%
+% After restoring the catcode of |~| and setting the minimal
+% values for hyphenation, the |.ldf| is finished.
+%
+% \changes{spanish~4.0e}{99/04/11}{Removed duplicated \cs{loadlocalcfg}}
+% \changes{spanish~4.0a}{98/09/14}{Moved
+% \cs{let}\cs{es@activeacute}\cs{@undefined}
+% to \cs{AtEndOfPackage}}
+% \changes{spanish~4.0a}{98/09/12}{Introduced \cs{ldf@finish}}
+% \changes{spanish~4.1d}{01/06/06}{Removed extra \cs{endinput}}
+% \begin{macrocode}
+\es@savedcatcodes
+
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+
+\ifes@LaTeXe %<<<<<<
+ \ldf@finish{spanish}
+\else %<<<<<<
+ \es@select
+ \ldf@finish{spanish}
+ \csname activatequoting\endcsname
+\fi %<<<<<<
+
+%</code>
+% \end{macrocode}
+% That's all in the main file. Now the file with
+% \textsf{custom-bib} macros.
+%
+% \changes{spanish~4.0b}{98/11/09}{Added support for custom-bib}
+% \changes{spanish~4.0i}{99/06/21}{the mthesis and phdthesis text
+% were reverted. Fixed}
+% \changes{spanish~4.0i}{99/06/21}{Added \cs{bbletal}}
+% \begin{macrocode}
+%<*bblbst>
+\def\bbland{y}
+\def\bbleditors{directores} \def\bbleds{dirs.\@}
+\def\bbleditor{director} \def\bbled{dir.\@}
+\def\bbledby{dirigido por}
+\def\bbledition{edici\'on} \def\bbledn{ed.\@}
+\def\bbletal{y otros}
+\def\bblvolume{vol\'umen} \def\bblvol{vol.\@}
+\def\bblof{de}
+\def\bblnumber{n\'umero} \def\bblno{n\sptext{o}}
+\def\bblin{en}
+\def\bblpages{p\'aginas} \def\bblpp{p\'ags.\@}
+\def\bblpage{p\'gina} \def\bblp{p\'ag.\@}
+\def\bblchapter{cap\'itulo} \def\bblchap{cap.\@}
+\def\bbltechreport{informe t\'ecnico}
+\def\bbltechrep{inf.\@ t\'ec.\@}
+\def\bblmthesis{proyecto de fin de carrera}
+\def\bblphdthesis{tesis doctoral}
+\def\bblfirst {primera} \def\bblfirsto {1\sptext{a}}
+\def\bblsecond{segunda} \def\bblsecondo{2\sptext{a}}
+\def\bblthird {tercera} \def\bblthirdo {3\sptext{a}}
+\def\bblfourth{cuarta} \def\bblfourtho{4\sptext{a}}
+\def\bblfifth {quinta} \def\bblfiftho {5\sptext{a}}
+\def\bblth{\sptext{a}}
+\let\bblst\bblth \let\bblnd\bblth \let\bblrd\bblth
+\def\bbljan{enero} \def\bblfeb{febrero} \def\bblmar{marzo}
+\def\bblapr{abril} \def\bblmay{mayo} \def\bbljun{junio}
+\def\bbljul{julio} \def\bblaug{agosto} \def\bblsep{septiembre}
+\def\bbloct{octubre}\def\bblnov{noviembre}\def\bbldec{diciembre}
+%</bblbst>
+% \end{macrocode}
+%
+% The |spanish| option writes a macro in the page field of
+% \textit{MakeIndex} in entries with small caps number, and they
+% are rejected. This program is a preprocessor which moves this
+% macro to the entry field.
+%
+% \begin{macrocode}
+%<*indexes>
+\makeatletter
+
+\newcount\es@converted
+\newcount\es@processed
+
+\def\es@encap{`\|}
+\def\es@openrange{`\(}
+\def\es@closerange{`\)}
+
+\def\es@split@file#1.#2\@@{#1}
+\def\es@split@ext#1.#2\@@{#2}
+
+\typein[\answer]{^^JArchivo que convertir^^J%
+ (extension por omision .idx):}
+
+\@expandtwoargs\in@{.}{\answer}
+\ifin@
+ \edef\es@input@file{\expandafter\es@split@file\answer\@@}
+ \edef\es@input@ext{\expandafter\es@split@ext\answer\@@}
+\else
+ \edef\es@input@file{\answer}
+ \def\es@input@ext{idx}
+\fi
+
+\typein[\answer]{^^JArchivo de destino^^J%
+ (archivo por omision: \es@input@file.eix,^^J%
+ extension por omision .eix):}
+\ifx\answer\@empty
+ \edef\es@output{\es@input@file.eix}
+\else
+ \@expandtwoargs\in@{.}{\answer}
+ \ifin@
+ \edef\es@output{\answer}
+ \else
+ \edef\es@output{\answer.eix}
+ \fi
+\fi
+
+\typein[\answer]{%
+ ^^J?Se ha usado algun esquema especial de controles^^J%
+ de MakeIndex para encap, open_range o close_range?^^J%
+ [s/n] (n por omision)}
+
+\if s\answer
+ \typein[\answer]{^^JCaracter para 'encap'^^J%
+ (\string| por omision)}
+ \ifx\answer\@empty\else
+ \edef\es@encap{%
+ `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
+ \fi
+ \typein[\answer]{^^JCaracter para 'open_range'^^J%
+ (\string( por omision)}
+ \ifx\answer\@empty\else
+ \edef\es@openrange{%
+ `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
+ \fi
+ \typein[\answer]{^^JCaracter para 'close_range'^^J%
+ (\string) por omision)}
+ \ifx\answer\@empty\else
+ \edef\es@closerange{%
+ `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
+ \fi
+\fi
+
+\newwrite\es@indexfile
+\immediate\openout\es@indexfile=\es@output
+
+\newif\ifes@encapsulated
+
+\def\es@roman#1{\romannumeral#1 }
+\edef\es@slash{\expandafter\@gobble\string\\}
+
+\def\indexentry{%
+ \begingroup
+ \@sanitize
+ \es@indexentry}
+
+\begingroup
+
+\catcode`\|=12 \lccode`\|=\es@encap\relax
+\catcode`\(=12 \lccode`\(=\es@openrange\relax
+\catcode`\)=12 \lccode`\)=\es@closerange\relax
+
+\lowercase{
+\gdef\es@indexentry#1{%
+ \endgroup
+ \advance\es@processed\@ne
+ \es@encapsulatedfalse
+ \es@bar@idx#1|\@@
+ \es@idxentry}%
+}
+
+\lowercase{
+\gdef\es@idxentry#1{%
+ \in@{\es@roman}{#1}%
+ \ifin@
+ \advance\es@converted\@ne
+ \immediate\write\es@indexfile{%
+ \string\indexentry{\es@b|\ifes@encapsulated\es@p\fi esromanindex%
+ {\ifx\es@a\@empty\else\es@slash\es@a\fi}}{#1}}%
+ \else
+ \immediate\write\es@indexfile{%
+ \string\indexentry{\es@b\ifes@encapsulated|\es@p\es@a\fi}{#1}}%
+ \fi}
+}
+
+\lowercase{
+\gdef\es@bar@idx#1|#2\@@{%
+ \def\es@b{#1}\def\es@a{#2}%
+ \ifx\es@a\@empty\else\es@encapsulatedtrue\es@bar@eat#2\fi}
+}
+
+\lowercase{
+\gdef\es@bar@eat#1#2|{\def\es@p{#1}\def\es@a{#2}%
+ \edef\es@t{(}\ifx\es@t\es@p
+ \else\edef\es@t{)}\ifx\es@t\es@p
+ \else
+ \edef\es@a{\es@p\es@a}\let\es@p\@empty%
+ \fi\fi}
+}
+
+\endgroup
+
+\input \es@input@file.\es@input@ext
+
+\immediate\closeout\es@indexfile
+
+\typeout{*****************}
+\typeout{Se ha procesado: \es@input@file.\es@input@ext }
+\typeout{Lineas leidas: \the\es@processed}
+\typeout{Lineas convertidas: \the\es@converted}
+\typeout{Resultado en: \es@output}
+\ifnum\es@converted>\z@
+ \typeout{Genere el indice a partir de ese archivo}
+\else
+ \typeout{No se ha realizado ningun tipo de conversion}
+ \typeout{Se puede generar el archivo directamente^^J%
+ de \es@input@file.\es@input@ext}
+\fi
+\typeout{*****************}
+\@@end
+%</indexes>
+% \end{macrocode}
+%
+% \Finale
+%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
+
+
+
+
+
diff --git a/Master/texmf-dist/source/generic/babel/spanish.ins b/Master/texmf-dist/source/generic/babel/spanish.ins
new file mode 100644
index 00000000000..025a0f1c792
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/spanish.ins
@@ -0,0 +1,151 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{spanish.ins}
+\def\filedate{2000/10/13}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+ \Msg{**********************************************}
+ \Msg{*}
+ \Msg{* This installation requires docstrip}
+ \Msg{* version 2.3c or later.}
+ \Msg{*}
+ \Msg{* An older version of docstrip has been input}
+ \Msg{*}
+ \Msg{**********************************************}
+ \errhelp{Move or rename old docstrip.tex.}
+ \errmessage{Old docstrip in input path}
+ \batchmode
+ \csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\keepsilent
+
+\usepreamble\mainpreamble
+\generate{\file{spanish.ldf}{\from{spanish.dtx}{code}}%
+ \file{esbst.tex}{\from{spanish.dtx}{bblbst}}%
+ \file{romanidx.tex}{\from{spanish.dtx}{indexes}}}
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/swedish.dtx b/Master/texmf-dist/source/generic/babel/swedish.dtx
new file mode 100644
index 00000000000..6beb68787b5
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/swedish.dtx
@@ -0,0 +1,442 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{272}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{swedish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{swedish}
+%\fi
+%\ProvidesFile{swedish.dtx}
+ [2005/03/31 v2.3d Swedish support from the babel system]
+%\iffalse
+%% File `swedish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Swedish language definition file. A contribution
+% was made by Sten Hellman HELLMAN@CERNVM.CERN.CH
+%
+% Further enhancements for version 2.0 were provided by
+% Erik "Osthols <erik\_osthols@yahoo.com>
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{swedish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{swedish.dtx}
+%
+% \changes{swedish-1.0a}{1991/07/15}{Renamed \file{babel.sty} in
+% \file{babel.com}}
+% \changes{swedish-1.1}{1992/02/16}{Brought up-to-date with babel 3.2a}
+% \changes{swedish-1.2}{1994/02/27}{Update for LaTeX2e}
+% \changes{swedish-1.3d}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{swedish-1.3e}{1995/05/28}{Update for release 3.5}
+% \changes{swedish-2.0}{1996/01/24}{Introduced active double quote}
+% \changes{swedish-2.1}{1996/10/10}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX, moved the definition of \cs{atcatcode} right to the
+% beginning.}
+% \changes{swedish-2.3d}{2001/11/16}{Fixed a \cs{changes} entry}
+%
+% \section{The Swedish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. Contributions were made by Sten Hellman
+% (\texttt{HELLMAN@CERNVM.CERN.CH}) and Erik \"Osthols
+% (\texttt{erik\_osthols@yahoo.com}).} defines all the
+% language-specific macros for the Swedish language. This
+% file has borrowed heavily from |finnish.dtx| and |germanb.dtx|.
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:swedish-quote} an overview is given of its
+% purpose. The vertical placement of the "umlaut" in some letters
+% can be controlled this way.
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |"a| & Gives \"a, also implemented for |"A|, |"o| and |"O|. \\
+% |"w|, |"W| & gives {\aa} and {\AA}. \\
+% |"ff| & for |ff| to be hyphenated as |ff-f|. Used for compound
+% words, such as \texttt{stra|"|ff{\aa}nge}, which
+% should be hyphenated as \texttt{straff-f{\aa}nge}.
+% This is also implemented for b, d, f, g, l, m, n,
+% p, r, s, and t. \\
+% \verb="|= & disable ligature at this position. This should be
+% used for compound words, such as
+% ``\texttt{stra|"|ffinr\"attning}'',
+% which should not have the ligature ``ffi''. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word, such as e. g. in
+% ``x|"-|axeln''. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for words that should break at some sign such as
+% \texttt{och/|""|eller}). \\
+% |"~| & for an explicit hyphen without a breakpoint; useful for
+% expressions such as ``2|"~|3 veckor'' where no linebreak
+% is desirable. \\
+% |"=| & an explicit hyphen sign allowing subsequent hyphenation,
+% for expressions such as ``studiebidrag och \newline
+% -l{\aa}n''. \\
+% |\-| & like the old |\-|, but allowing hyphenation
+% in the rest of the word. \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{swedish.sty}}\label{tab:swedish-quote}
+% \end{center}
+% \end{table}
+%
+% Two variations for formatting of dates are added. \cs{datesymd}
+% makes \cs{today} output dates formatted as YYYY-MM-DD, which is
+% commonly used in Sweden today. \cs{datesdmy} formats the date as
+% D/M YYYY, which is also very common in Sweden. These commands
+% should be issued after \cs{begin{document}}.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{swedish-2.1}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{swedish}\captionsswedish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{swedish} will be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@swedish| to see whether we have to do something here.
+%
+% \changes{swedish-1.0c}{1991/10/29}{Removed use of \cs{@ifundefined}}
+% \changes{swedish-1.1}{1992/02/16}{Added a warning when no hyphenation
+% patterns were loaded.}
+% \changes{swedish-1.3d}{1994/06/26}{Now use \cs{@nopatterns} to
+% producew the warning}
+% \begin{macrocode}
+\ifx\l@swedish\@undefined
+ \@nopatterns{Swedish}
+ \adddialect\l@swedish0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to the
+% Swedish language. The reason for this is that a user might want
+% to switch back and forth between languages.
+%
+% \begin{macro}{\captionsswedish}
+% The macro |\captionsswedish| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{swedish-1.0b}{1991/08/21}{removed type in definition of
+% \cs{contentsname}}
+% \changes{swedish-1.0b}{1991/08/21}{added definition for \cs{enclname}}
+% \changes{swedish-1.0b}{1991/08/21}{made definition of \cs{refname}
+% pluralis}
+% \changes{swedish-1.1}{1992/02/16}{Added \cs{seename}, \cs{alsoname}
+% and \cs{prefacename}}
+% \changes{swedish-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{swedish-1.1b}{1993/09/16}{Added translations}
+% \changes{swedish-1.3d}{1994/07/27}{Changed \cs{aa} to
+% \cs{csname}\texttt{ aa}\cs{endcsname}, to make \cs{uppercase} do
+% the right thing}
+% \changes{swedish-1.3f}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \begin{macrocode}
+\addto\captionsswedish{%
+ \def\prefacename{F\"orord}%
+ \def\refname{Referenser}%
+ \def\abstractname{Sammanfattning}%
+ \def\bibname{Litteraturf\"orteckning}%
+ \def\chaptername{Kapitel}%
+ \def\appendixname{Bilaga}%
+ \def\contentsname{Inneh\csname aa\endcsname ll}%
+ \def\listfigurename{Figurer}%
+ \def\listtablename{Tabeller}%
+ \def\indexname{Sakregister}%
+ \def\figurename{Figur}%
+ \def\tablename{Tabell}%
+ \def\partname{Del}%
+% \end{macrocode}
+% \changes{swedish-2.3a}{2000/01/19}{Added full stop after ``Bil''}
+% \begin{macrocode}
+ \def\enclname{Bil.}%
+ \def\ccname{Kopia f\"or k\"annedom}%
+ \def\headtoname{Till}% in letter
+ \def\pagename{Sida}%
+ \def\seename{se}%
+% \end{macrocode}
+% \changes{swedish-1.3e}{1995/05/29}{Changed \cs{alsoname} from
+% `\texttt{se ocks\aa}'}
+% \begin{macrocode}
+ \def\alsoname{se \"aven}%
+% \end{macrocode}
+% \changes{swedish-1.3g}{1995/11/03}{Replaced `Proof' by its
+% translation}
+% \changes{swedish-2.3b}{2000/09/26}{Added \cs{glossaryname}}
+% \changes{swedish-2.3c}{2001/03/12}{Provided translation for
+% Glossary}
+% \begin{macrocode}
+ \def\proofname{Bevis}%
+ \def\glossaryname{Ordlista}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateswedish}
+% The macro |\dateswedish| redefines the command |\today| to
+% produce Swedish dates.
+% \changes{swedish-2.2}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{swedish-2.2}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\dateswedish{%
+ \def\today{%
+ \number\day~\ifcase\month\or
+ januari\or februari\or mars\or april\or maj\or juni\or
+ juli\or augusti\or september\or oktober\or november\or
+ december\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datesymd}
+% \changes{swedish-2.3a}{2000/01/20}{Command added}
+% The macro |\datesymd| redefines the command |\today| to
+% produce dates in the format YYYY-MM-DD, common in Sweden.
+% \begin{macrocode}
+\def\datesymd{%
+ \def\today{\number\year-\two@digits\month-\two@digits\day}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datesdmy}
+% \changes{swedish-2.3a}{2000/01/20}{Command added}
+% The macro |\datesdmy| redefines the command |\today| to
+% produce Swedish dates in the format DD/MM YYYY, also common in
+% Sweden.
+% \begin{macrocode}
+\def\datesdmy{%
+ \def\today{\number\day/\number\month\space\number\year}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\swedishhyphenmins}
+% The swedish hyphenation patterns can be used with |\lefthyphenmin|
+% set to~2 and |\righthyphenmin| set to~2.
+% \changes{swedish-1.3e}{1995/06/02}{use \cs{swedishhyphenmins} to
+% store the correct values}
+% \begin{macrocode}
+\providehyphenmins{swedish}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasswedish}
+% \changes{swedish-1.3e}{1995/05/29}{Added \cs{bbl@frenchspacing}}
+% \begin{macro}{\noextrasswedish}
+% \changes{swedish-1.3e}{1995/05/29}{Added \cs{bbl@nonfrenchspacing}}
+% The macro |\extrasswedish| performs all the extra definitions
+% needed for the Swedish language. The macro |\noextrasswedish| is
+% used to cancel the actions of |\extrasswedish|.
+%
+% For Swedish texts |\frenchspacing| should be in effect. We make
+% sure this is the case and reset it if necessary.
+%
+% \begin{macrocode}
+\addto\extrasswedish{\bbl@frenchspacing}
+\addto\noextrasswedish{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% For Swedish the \texttt{"} character is made active. This is done
+% once, later on its definition may vary.
+% \changes{swedish-2.0}{1996/01/24}{Added active double quote
+% character}
+%
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasswedish{\languageshorthands{swedish}}
+\addto\extrasswedish{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{swedish-2.2b}{1999/12/17}{Deactivate shorthands ouside of
+% Swedish}
+% \begin{macrocode}
+\addto\noextrasswedish{\bbl@deactivate{"}}
+% \end{macrocode}
+% The ``umlaut'' accent macro |\"| is changed to lower the
+% ``umlaut'' dots. The redefinition is done with the help of
+% |\umlautlow|.
+%^^A PROBLEM:
+%^^A What happens to ``umlaut''
+%^^A characters entered using e. g. latin input encoding? They should
+%^^A be lowered as well.
+% \begin{macrocode}
+\addto\extrasswedish{\babel@save\"\umlautlow}
+\addto\noextrasswedish{\umlauthigh}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The code above is necessary because we need an extra active
+% character. This character is then used as indicated in
+% table~\ref{tab:swedish-quote}.
+%
+% To be able to define the function of |"|, we first define a
+% couple of `support' macros.
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep
+% it available, the math accent |\"| can now be typed as |"|.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the doublequote macros: the umlauts and {\aa}.
+% \changes{swedish-2.3a}{2000/01/20}{added \cs{allowhyphens}}
+% \begin{macrocode}
+\declare@shorthand{swedish}{"w}{\textormath{{\aa}\allowhyphens}{\ddot w}}
+\declare@shorthand{swedish}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
+\declare@shorthand{swedish}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
+\declare@shorthand{swedish}{"W}{\textormath{{\AA}\allowhyphens}{\ddot W}}
+\declare@shorthand{swedish}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
+\declare@shorthand{swedish}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
+% \end{macrocode}
+% discretionary commands
+%^^A PROBLEM:
+%^^A Will these allow subsequent hyphenation? Perhaps we need to
+%^^A add \cs{allowhyphens} here as well?
+% \begin{macrocode}
+\declare@shorthand{swedish}{"b}{\textormath{\bbl@disc b{bb}}{b}}
+\declare@shorthand{swedish}{"B}{\textormath{\bbl@disc B{BB}}{B}}
+\declare@shorthand{swedish}{"d}{\textormath{\bbl@disc d{dd}}{d}}
+\declare@shorthand{swedish}{"D}{\textormath{\bbl@disc D{DD}}{D}}
+\declare@shorthand{swedish}{"f}{\textormath{\bbl@disc f{ff}}{f}}
+\declare@shorthand{swedish}{"F}{\textormath{\bbl@disc F{FF}}{F}}
+\declare@shorthand{swedish}{"g}{\textormath{\bbl@disc g{gg}}{g}}
+\declare@shorthand{swedish}{"G}{\textormath{\bbl@disc G{GG}}{G}}
+\declare@shorthand{swedish}{"l}{\textormath{\bbl@disc l{ll}}{l}}
+\declare@shorthand{swedish}{"L}{\textormath{\bbl@disc L{LL}}{L}}
+\declare@shorthand{swedish}{"m}{\textormath{\bbl@disc m{mm}}{m}}
+\declare@shorthand{swedish}{"M}{\textormath{\bbl@disc M{MM}}{M}}
+\declare@shorthand{swedish}{"n}{\textormath{\bbl@disc n{nn}}{n}}
+\declare@shorthand{swedish}{"N}{\textormath{\bbl@disc N{NN}}{N}}
+\declare@shorthand{swedish}{"p}{\textormath{\bbl@disc p{pp}}{p}}
+\declare@shorthand{swedish}{"P}{\textormath{\bbl@disc P{PP}}{P}}
+\declare@shorthand{swedish}{"r}{\textormath{\bbl@disc r{rr}}{r}}
+\declare@shorthand{swedish}{"R}{\textormath{\bbl@disc R{RR}}{R}}
+\declare@shorthand{swedish}{"s}{\textormath{\bbl@disc s{ss}}{s}}
+\declare@shorthand{swedish}{"S}{\textormath{\bbl@disc S{SS}}{S}}
+\declare@shorthand{swedish}{"t}{\textormath{\bbl@disc t{tt}}{t}}
+\declare@shorthand{swedish}{"T}{\textormath{\bbl@disc T{TT}}{T}}
+% \end{macrocode}
+% and some additional commands:
+% \def\indexeqs{=}
+% \changes{swedish-2.3a}{2000/01/28}{changed definition of
+% \texttt{"\protect\indexeqs}, \cs{-} and \texttt{"~}}
+% \begin{macrocode}
+\declare@shorthand{swedish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{swedish}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \bbl@allowhyphens}{}}
+\declare@shorthand{swedish}{""}{\hskip\z@skip}
+\declare@shorthand{swedish}{"~}{%
+ \textormath{\leavevmode\hbox{-}\bbl@allowhyphens}{-}}
+\declare@shorthand{swedish}{"=}{\hbox{-}\allowhyphens}
+% \end{macrocode}
+%
+% \begin{macro}{\-}
+% Redefinition of |\-|. The new version of |\-| should indicate an
+% extra hyphenation position, while allowing other hyphenation
+% positions to be generated automatically. The standard behaviour
+% of \TeX\ in this respect is very unfortunate for languages such
+% as Dutch, Finnish, German and Swedish, where long compound words
+% are quite normal and all one needs is a means to indicate an
+% extra hyphenation position on top of the ones that \TeX\ can
+% generate from the hyphenation patterns.
+% \begin{macrocode}
+\addto\extrasswedish{\babel@save\-}
+\addto\extrasswedish{\def\-{\allowhyphens
+ \discretionary{-}{}{}\allowhyphens}}
+% \end{macrocode}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{swedish-2.1}{1996/11/03}{Now use \cs{ldf@finish} to wrap up}
+% \begin{macrocode}
+\ldf@finish{swedish}
+%</code>
+% \end{macrocode}
+%
+%\Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/swedish.ins b/Master/texmf-dist/source/generic/babel/swedish.ins
new file mode 100644
index 00000000000..34916c0021f
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/swedish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{swedish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{swedish.ldf}{\from{swedish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/turkish.dtx b/Master/texmf-dist/source/generic/babel/turkish.dtx
new file mode 100644
index 00000000000..2ec69bc6bee
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/turkish.dtx
@@ -0,0 +1,309 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{179}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{turkish.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{turkish}
+%\fi
+%\ProvidesFile{turkish.dtx}
+ [2005/03/31 v1.2m Turkish support from the babel system]
+%\iffalse
+%% File `turkish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+%% Turkish Language Definition File
+%% Copyright (C) 1994 - 2005
+%% by Mustafa Burc
+%% rz6001@rziris01.rrz.uni-hamburg.de
+%% (40) 2503476
+%
+% This file is part of the babel system, it provides the source
+% code for the Turkish language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{turkish.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{turkish.dtx}
+%
+% \changes{turkish-1.2}{1994/02/27}{Update for \LaTeXe}
+% \changes{turkish-1.2c}{1994/06/26}{Removed the use of \cs{filedate}
+% and moved identification after the loading of \file{babel.def}}
+% \changes{turkish-1.2h}{1996/07/13}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{turkish-1.2i}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The Turkish language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% Turkish language\footnote{Mustafa Burc,
+% \texttt{z6001@rziris01.rrz.uni-hamburg.de} provided the code for
+% this file. It is based on the work by Pierre Mackay; Turgut Uyar,
+% \texttt{uyar@cs.itu.edu.tr} supplied additional translations in
+% version 1.2j and later}.
+%
+% Turkish typographic rules specify that a little `white space'
+% should be added before the characters `\texttt{:}', `\texttt{!}'
+% and `\texttt{=}'. In order to insert this white space
+% automatically these characters are made `active'. Also
+% |\frenhspacing| is set.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{turkish-1.2i}{1996/11/03}{ow use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{turkish}\captionsturkish
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{turkish} could be an `unknown' language in which
+% case we have to make it known. So we check for the existence of
+% |\l@turkish| to see whether we have to do something here.
+%
+% \changes{turkish-1.2c}{1994/06/26}{Now use \cs{@nopatterns} to
+% produce the warning}
+% \begin{macrocode}
+\ifx\l@turkish\@undefined
+ \@nopatterns{Turkish}
+ \adddialect\l@turkish0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Turkish language.
+%
+% \begin{macro}{\captionsturkish}
+% The macro |\captionsturkish| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{turkish-1.1}{1993/07/15}{\cs{headpagename} should be
+% \cs{pagename}}
+% \changes{turkish-1.2b}{1994/06/04}{Added braces behind \cs{i} in
+% strings}
+% \changes{turkish-1.2f}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{turkish-1.2j}{1997/09/29}{Added and modified translations}
+% \changes{turkish-1.2k}{1999/04/18}{Incorporated some more
+% corrections}
+% \changes{turkish-1.2m}{2000/09/20}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsturkish{%
+ \def\prefacename{\"Ons\"oz}%
+ \def\refname{Kaynaklar}%
+ \def\abstractname{\"Ozet}%
+ \def\bibname{Kaynak\c ca}%
+ \def\chaptername{B\"ol\"um}%
+ \def\appendixname{Ek}%
+ \def\contentsname{\.I\c cindekiler}%
+ \def\listfigurename{\c Sekil Listesi}%
+ \def\listtablename{Tablo Listesi}%
+ \def\indexname{Dizin}%
+ \def\figurename{\c Sekil}%
+ \def\tablename{Tablo}%
+ \def\partname{K\i s\i m}%
+ \def\enclname{\.Ili\c sik}%
+ \def\ccname{Di\u ger Al\i c\i lar}%
+ \def\headtoname{Al\i c\i}%
+ \def\pagename{Sayfa}%
+ \def\subjectname{\.Ilgili}%
+ \def\seename{bkz.}%
+ \def\alsoname{ayr\i ca bkz.}%
+ \def\proofname{Kan\i t}%
+ \def\glossaryname{Glossary}% <-- Needs translation
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dateturkish}
+% The macro |\dateturkish| redefines the command |\today| to
+% produce Turkish dates.
+% \changes{turkish-1.2b}{1994/06/04}{Added braces behind \cs{i} in
+% strings}
+% \changes{turkish-1.2d}{1995/01/31}{removed extra closing brace,
+% \cs{mont} should be \cs{month}}
+% \changes{turkish-1.2j}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{turkish-1.2j}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \changes{turkish-1.2l}{1999/05/17}{removed dot from the date format}
+% \begin{macrocode}
+\def\dateturkish{%
+ \def\today{\number\day~\ifcase\month\or
+ Ocak\or \c Subat\or Mart\or Nisan\or May\i{}s\or Haziran\or
+ Temmuz\or A\u gustos\or Eyl\"ul\or Ekim\or Kas\i{}m\or
+ Aral\i{}k\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extrasturkish}
+% \changes{turkish-1.2e}{1995/05/15}{Completely rewrote macro}
+% \begin{macro}{\noextrasturkish}
+% The macro |\extrasturkish| will perform all the extra definitions
+% needed for the Turkish language. The macro |\noextrasturkish| is
+% used to cancel the actions of |\extrasturkish|.
+%
+% Turkish typographic rules specify that a little `white space'
+% should be added before the characters `\texttt{:}', `\texttt{!}'
+% and `\texttt{=}'. In order to insert this white space
+% automatically these characters are made |\active|, so they have
+% to be treated in a special way.
+% \begin{macrocode}
+\initiate@active@char{:}
+\initiate@active@char{!}
+\initiate@active@char{=}
+% \end{macrocode}
+% We specify that the turkish group of shorthands should be used.
+% \begin{macrocode}
+\addto\extrasturkish{\languageshorthands{turkish}}
+% \end{macrocode}
+% These characters are `turned on' once, later their definition may
+% vary.
+% \begin{macrocode}
+\addto\extrasturkish{%
+ \bbl@activate{:}\bbl@activate{!}\bbl@activate{=}}
+% \end{macrocode}
+%
+% For Turkish texts |\frenchspacing| should be in effect. We
+% make sure this is the case and reset it if necessary.
+% \changes{turkish-1.2e}{1995/05/15}{now use \cs{bbl@frenchspacing}
+% and \cs{bbl@nonfrenchspacing}}
+% \begin{macrocode}
+\addto\extrasturkish{\bbl@frenchspacing}
+\addto\noextrasturkish{\bbl@nonfrenchspacing}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\turkish@sh@!@}
+% \begin{macro}{\turkish@sh@=@}
+% \begin{macro}{\turkish@sh@:@}
+% The definitions for the three active characters were made using
+% intermediate macros. These are defined now. The insertion of
+% extra `white space' should only happen outside math mode, hence
+% the check |\ifmmode| in the macros.
+% \changes{turkish-1.2d}{1995/01/31}{Added missing \cs{def}}
+% \changes{turkish-1.2e}{1995/05/15}{Use the new mechanism of
+% \cs{declare@shorthand}}
+%%^^A JLB:: this code breaks during \begin{document}
+%%^^A JLB: Needs fixing!!
+% \begin{macrocode}
+\declare@shorthand{turkish}{:}{%
+ \ifmmode
+ \string:%
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \fi
+ \fi
+ \string:%
+ \fi}
+\declare@shorthand{turkish}{!}{%
+ \ifmmode
+ \string!%
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\penalty\@M\thinspace
+ \fi
+ \fi
+ \string!%
+ \fi}
+\declare@shorthand{turkish}{=}{%
+ \ifmmode
+ \string=%
+ \else\relax
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\kern\fontdimen2\font
+ \kern-1.4\fontdimen3\font
+ \fi
+ \fi
+ \string=%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{turkish-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{turkish}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/turkish.ins b/Master/texmf-dist/source/generic/babel/turkish.ins
new file mode 100644
index 00000000000..9e7af81a31a
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/turkish.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{turkish.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{turkish.ldf}{\from{turkish.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/ukraineb.dtx b/Master/texmf-dist/source/generic/babel/ukraineb.dtx
new file mode 100644
index 00000000000..7f118d5934c
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/ukraineb.dtx
@@ -0,0 +1,1158 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{1472}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{ukraineb.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{ukraineb}
+ [2005/03/30 v1.1k Ukrainian support from the babel system]
+%
+%% File `ukraineb.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% ukraineb Language Definition File
+%% Copyright (C) 1997 - 2005
+%% by Andrij Shvaika ashv at icmp.lviv.ua
+%
+%% derived from the Russianb Language Definition File
+%% Copyright (C) 1995 - 2005
+%% by Olga Lapko cyrtug at mir.msk.su
+%% Johannes Braams, TeXniek
+% adapted to the new T2 and X2 Cyrillic encodings
+% by Vladimir Volovich TeX at vvv.vsu.ru
+% Werner Lemberg wl at gnu.org
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand\TeXhax{\TeX hax}
+\newcommand\babel{\textsf{babel}}
+\newcommand\langvar{$\langle \it lang \rangle$}
+\newcommand\note[1]{}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\newcommand\pkg[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{ukraineb.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{ukraineb.dtx}
+%
+% \changes{ukraineb-1.1e}{1999/08/19}{replaced all \cs{penalty}\cs{@M}
+% with \cs{nobreak}}
+%
+% \section{The Ukrainian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion.
+% This file was derived from the \file{russianb.dtx} version 1.1g.}
+% defines all the language-specific macros for the Ukrainian
+% language. It needs the file \file{cyrcod} for success documentation
+% with Ukrainian encodings (see below).
+%
+% For this language the character |"| is made active. In
+% table~\ref{tab:ukrainian-quote} an overview is given of its
+% purpose.
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% \verb="|= & disable ligature at this position. \\
+% |"-| & an explicit hyphen sign, allowing hyphenation
+% in the rest of the word. \\
+% |"---| & Cyrillic emdash in plain text. \\
+% |"--~| & Cyrillic emdash in compound names (surnames). \\
+% |"--*| & Cyrillic emdash for denoting direct speech. \\
+% |""| & like |"-|, but producing no hyphen sign
+% (for compund words with hyphen, e.g.\ |x-""y|
+% or some other signs as ``disable/enable''). \\
+% |"~| & for a compound word mark without a breakpoint. \\
+% |"=| & for a compound word mark with a breakpoint, allowing
+% hyphenation in the composing words. \\
+% |",| & thinspace for initials with a breakpoint
+% in following surname. \\
+% |"`| & for German left double quotes
+% (looks like ,\kern-0.08em,). \\
+% |"'| & for German right double quotes (looks like ``). \\%''
+% |"<| & for French left double quotes (looks like $<\!\!<$). \\
+% |">| & for French right double quotes (looks like $>\!\!>$). \\
+% \end{tabular}
+% \caption{The extra definitions made
+% by \file{ukraineb}}\label{tab:ukrainian-quote}
+% \end{center}
+% \end{table}
+%
+% The quotes in table~\ref{tab:ukrainian-quote} (see, also
+% table~\ref{tab:russian-quote}) can also be typeset by using the commands
+% in table~\ref{tab:umore-quote} (see, also table~\ref{tab:rmore-quote}).
+%
+% \begin{table}[htb]
+% \begin{center}
+% \begin{tabular}{lp{8cm}}
+% |\cdash---| & Cyrillic emdash in plain text. \\
+% |\cdash--~| & Cyrillic emdash in compound names (surnames). \\
+% |\cdash--*| & Cyrillic emdash for denoting direct speech. \\
+% |\glqq| & for German left double quotes
+% (looks like ,\kern-0.08em,). \\
+% |\grqq| & for German right double quotes (looks like ``). \\%''
+% |\flqq| & for French left double quotes (looks like $<\!\!<$). \\
+% |\frqq| & for French right double quotes (looks like $>\!\!>$). \\
+% |\dq| & the original quotes character (|"|). \\
+% \end{tabular}
+% \caption{More commands which produce quotes, defined
+% by \babel}\label{tab:umore-quote}
+% \end{center}
+% \end{table}
+%
+% The French quotes are also available as ligatures `|<<|' and `|>>|' in
+% 8-bit Cyrillic font encodings (\texttt{LCY}, \texttt{X2}, \texttt{T2*})
+% and as `|<|' and `|>|' characters in 7-bit Cyrillic font encodings
+% (\texttt{OT2} and \texttt{LWN}).
+%
+% The quotation marks traditionally used in Ukrainian and Russian
+% languages were borrowed from other languages (e.g. French and German)
+% so they keep their original names.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is loaded
+% more than once, checking the category code of the \texttt{@} sign, etc.
+%
+% \begin{macrocode}
+%<*code>
+\LdfInit{ukrainian}{captionsukrainian}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e., by the |\usepackage|
+% command, \texttt{ukraineb} will be an `unknown' language, in which case
+% we have to make it known. So we check for the existence of |\l@ukrainian|
+% to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@ukrainian\@undefined
+ \@nopatterns{Ukrainian}
+ \adddialect\l@ukrainian0
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\latinencoding}
+%
+% We need to know the encoding for text that is supposed to be which is
+% active at the end of the \babel\ package. If the \pkg{fontenc} package
+% is loaded later, then\ldots too bad!
+%
+% \begin{macrocode}
+\let\latinencoding\cf@encoding
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The user may choose between different available Cyrillic
+% encodings---e.g., \texttt{X2}, \texttt{LCY}, or \texttt{LWN}.\@
+% Hopefully, \texttt{X2} will eventually replace the two latter encodings
+% (\texttt{LCY} and \texttt{LWN}).\@ If the user wants to use another
+% font encoding than the default (\texttt{T2A}), he has to load the
+% corresponding file \emph{before} \file{ukraineb.sty}. This may be done
+% in the following way:
+%
+% \begin{verbatim}
+% % override the default X2 encoding used in Babel
+% \usepackage[LCY,OT1]{fontenc}
+% \usepackage[english,ukrainian]{babel}
+% \end{verbatim}
+% \unskip
+%
+% Note: for the Ukrainian language, the \texttt{T2A} encoding is better than
+% \texttt{X2}, because \texttt{X2} does not contain Latin letters, and
+% users should be very careful to switch the language every time they
+% want to typeset a Latin word inside a Ukrainian phrase or vice versa.
+%
+% We parse the |\cdp@list| containing the encodings known to \LaTeX\ in
+% the order they were loaded. We set the |\cyrillicencoding| to the
+% \emph{last} loaded encoding in the list of supported Cyrillic
+% encodings: \texttt{OT2}, \texttt{LWN}, \texttt{LCY}, \texttt{X2},
+% \texttt{T2C}, \texttt{T2B}, \texttt{T2A}, if any.
+%
+% \begin{macrocode}
+\def\reserved@a#1#2{%
+ \edef\reserved@b{#1}%
+ \edef\reserved@c{#2}%
+ \ifx\reserved@b\reserved@c
+ \let\cyrillicencoding\reserved@c
+ \fi}
+\def\cdp@elt#1#2#3#4{%
+ \reserved@a{#1}{OT2}%
+ \reserved@a{#1}{LWN}%
+ \reserved@a{#1}{LCY}%
+ \reserved@a{#1}{X2}%
+ \reserved@a{#1}{T2C}%
+ \reserved@a{#1}{T2B}%
+ \reserved@a{#1}{T2A}}
+\cdp@list
+% \end{macrocode}
+%
+% Now, if |\cyrillicencoding| is undefined, then the user did not load
+% any of supported encodings. So, we have to set |\cyrillicencoding| to
+% some default value. We test the presence of the encoding definition
+% files in the order from less preferable to more preferable encodings.
+% We use the lowercase names (i.e., \file{lcyenc.def} instead of
+% \file{LCYenc.def}).
+%
+% \begin{macrocode}
+\ifx\cyrillicencoding\undefined
+ \IfFileExists{ot2enc.def}{\def\cyrillicencoding{OT2}}\relax
+ \IfFileExists{lwnenc.def}{\def\cyrillicencoding{LWN}}\relax
+ \IfFileExists{lcyenc.def}{\def\cyrillicencoding{LCY}}\relax
+ \IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax
+ \IfFileExists{t2cenc.def}{\def\cyrillicencoding{T2C}}\relax
+ \IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax
+ \IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax
+% \end{macrocode}
+%
+% If |\cyrillicencoding| is still undefined, then the user seems not to
+% have a properly installed distribution. A fatal error.
+%
+% \begin{macrocode}
+ \ifx\cyrillicencoding\undefined
+ \PackageError{babel}%
+ {No Cyrillic encoding definition files were found}%
+ {Your installation is incomplete.\MessageBreak
+ You need at least one of the following files:\MessageBreak
+ \space\space
+ x2enc.def, t2aenc.def, t2benc.def, t2cenc.def,\MessageBreak
+ \space\space
+ lcyenc.def, lwnenc.def, ot2enc.def.}%
+ \else
+% \end{macrocode}
+%
+% We avoid |\usepackage[\cyrillicencoding]{fontenc}| because we don't
+% want to force the switch of |\encodingdefault|.
+%
+% \begin{macrocode}
+ \lowercase
+ \expandafter{\expandafter\input\cyrillicencoding enc.def\relax}%
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{verbatim}
+% \PackageInfo{babel}
+% {Using `\cyrillicencoding' as a default Cyrillic encoding}%
+% \end{verbatim}
+% \unskip
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Ukrainian}{%
+ \fontencoding\cyrillicencoding\selectfont
+ \let\encodingdefault\cyrillicencoding
+ \expandafter\set@hyphenmins\ukrainianhyphenmins
+ \language\l@ukrainian}%
+\DeclareRobustCommand{\English}{%
+ \fontencoding\latinencoding\selectfont
+ \let\encodingdefault\latinencoding
+ \expandafter\set@hyphenmins\englishhyphenmins
+ \language\l@english}%
+\let\Ukr\Ukrainian
+\let\Eng\English
+\let\cyrillictext\Ukrainian
+\let\cyr\Ukrainian
+% \end{macrocode}
+%
+% Since the \texttt{X2} encoding does not contain Latin letters, we
+% should make some redefinitions of \LaTeX\ macros which implicitly
+% produce Latin letters.
+%
+% \begin{macrocode}
+\expandafter\ifx\csname T@X2\endcsname\relax\else
+% \end{macrocode}
+%
+% We put |\latinencoding| in braces to avoid problems with
+% |\@alph| inside minipages (e.g., footnotes inside minipages) where
+% |\@alph| is expanded and we get for example `|\fontencoding OT1|'
+% (|\fontencoding| is robust).
+%
+% \begin{macrocode}
+ \def\@alph#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or
+ a\or b\or c\or d\or e\or f\or g\or h\or
+ i\or j\or k\or l\or m\or n\or o\or p\or
+ q\or r\or s\or t\or u\or v\or w\or x\or
+ y\or z\else\@ctrerr\fi}}%
+ \def\@Alph#1{{\fontencoding{\latinencoding}\selectfont
+ \ifcase#1\or
+ A\or B\or C\or D\or E\or F\or G\or H\or
+ I\or J\or K\or L\or M\or N\or O\or P\or
+ Q\or R\or S\or T\or U\or V\or W\or X\or
+ Y\or Z\else\@ctrerr\fi}}%
+% \end{macrocode}
+%
+% Unfortunately, the commands |\AA| and |\aa| are not encoding dependent
+% in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are defined as |\r{A}| and
+% |\r{a}|. This leads to unpredictable results when the font encoding
+% does not contain the Latin letters `A' and `a' (like \texttt{X2}).
+%
+% \begin{macrocode}
+ \DeclareTextSymbolDefault{\AA}{OT1}
+ \DeclareTextSymbolDefault{\aa}{OT1}
+ \DeclareTextCommand{\aa}{OT1}{\r a}
+ \DeclareTextCommand{\AA}{OT1}{\r A}
+\fi
+% \end{macrocode}
+%
+% The following block redefines the character class of uppercase Greek
+% letters and some accents, if it is equal to 7 (variable family), to
+% avoid incorrect results if the font encoding in some math family does
+% not contain these characters in places of OT1 encoding. The code was
+% taken from |amsmath.dtx|. See comments and further explanation there.
+%
+% \changes{ukraineb-1.1i}{2001/02/21}{As this code generates a
+% textfont 7 error it is commented out for now.}
+% \begin{macrocode}
+% \begingroup\catcode`\"=12
+% % uppercase greek letters:
+% \def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax
+% "0000\@nil#1}
+% \def\@tempb#1"#2#3#4#5#6\@nil#7{%
+% \ifnum"#2=7 \count@"1#3#4#5\relax
+% \ifnum\count@<"1000 \else \global\mathchardef#7="0#3#4#5\relax \fi
+% \fi}
+% \@tempa\Gamma\@tempa\Delta\@tempa\Theta\@tempa\Lambda\@tempa\Xi
+% \@tempa\Pi\@tempa\Sigma\@tempa\Upsilon\@tempa\Phi\@tempa\Psi
+% \@tempa\Omega
+% % some accents:
+% \def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent}
+% \expandafter\@tempa\hat\relax\relax\@nil
+% \ifx\@tempb\@tempc
+% \def\@tempa#1\@nil{#1}%
+% \def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}%
+% \def\do#1"#2{}
+% \def\@tempd#1{\expandafter\@tempb#1\@nil
+% \ifnum\@tempc>"FFF
+% \xdef#1{\mathaccent"\expandafter\do\meaning\@tempc\space}%
+% \fi}
+% \@tempd\hat\@tempd\check\@tempd\tilde\@tempd\acute\@tempd\grave
+% \@tempd\dot\@tempd\ddot\@tempd\breve\@tempd\bar
+% \fi
+% \endgroup
+% \end{macrocode}
+%
+% The user must use the \pkg{inputenc} package when any 8-bit Cyrillic
+% font encoding is used, selecting one of the Cyrillic input encodings.
+% We do not assume any default input encoding, so the user should
+% explicitly call the \pkg{inputenc} package by |\usepackage{inputenc}|.
+% We also removed |\AtBeginDocument|, so \pkg{inputenc} should be used
+% before \babel.
+%
+% \changes{ukraineb-1.1f}{1999/08/27}{Made not using inputenc a
+% warning instead of an error}
+% \begin{macrocode}
+\@ifpackageloaded{inputenc}{}{%
+ \def\reserved@a{LWN}%
+ \ifx\reserved@a\cyrillicencoding\else
+ \def\reserved@a{OT2}%
+ \ifx\reserved@a\cyrillicencoding\else
+ \PackageWarning{babel}%
+ {No input encoding specified for Ukrainian language}
+ \fi\fi}
+% \end{macrocode}
+%
+% Now we define two commands that offer the possibility to switch between
+% Cyrillic and Roman encodings.
+%
+% \begin{macro}{\cyrillictext}
+% \begin{macro}{\latintext}
+%
+% The command |\cyrillictext| will switch from Latin font encoding to the
+% Cyrillic font encoding, the command |\latintext| switches back. This
+% assumes that the `normal' font encoding is a Latin one. These commands
+% are \emph{declarations}, for shorter peaces of text the commands
+% |\textlatin| and |\textcyrillic| can be used.
+%
+% \changes{ukraineb-1.1j}{2003/10/12}{\cs{latintext} is already
+% defined by the core of \babel}
+% \begin{macrocode}
+%\DeclareRobustCommand{\latintext}{%
+% \fontencoding{\latinencoding}\selectfont
+% \def\encodingdefault{\latinencoding}}
+\let\lat\latintext
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textcyrillic}
+% \begin{macro}{\textlatin}
+%
+% These commands take an argument which is then typeset using the
+% requested font encoding.
+% \changes{ukraineb-1.1j}{2003/10/12}{\cs{latintext} is already
+% defined by the core of \babel}
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcyrillic}{\cyrillictext}
+%\DeclareTextFontCommand{\textlatin}{\latintext}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% We make the \TeX
+% \begin{macrocode}
+%\ifx\ltxTeX\undefined\let\ltxTeX\TeX\fi
+%\ProvideTextCommandDefault{\TeX}{\textlatin{\ltxTeX}}
+% \end{macrocode}
+% and \LaTeX\ logos encoding independent.
+% \begin{macrocode}
+%\ifx\ltxLaTeX\undefined\let\ltxLaTeX\LaTeX\fi
+%\ProvideTextCommandDefault{\LaTeX}{\textlatin{\ltxLaTeX}}
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Ukrainian language.
+%
+% \begin{macro}{\captionsukrainian}
+%
+% The macro |\captionsukrainian| defines all strings used in the four
+% standard document classes provided with \LaTeX. The two commands |\cyr|
+% and |\lat| activate Cyrillic resp.\ Latin encoding.
+% \changes{ukraineb-1.1d}{1999/04/03}{replace \cs{CYRUKRI} with
+% \cs{CYRII} in \cs{authorname} }
+% \changes{ukraineb-1.1g}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{ukraineb-1.1h}{2001/02/13}{Added translation for
+% `Glossary'}
+% \begin{macrocode}
+\addto\captionsukrainian{%
+ \def\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}%
+% \def\prefacename{{\cyr\CYRP\cyre\cyrr\cyre\cyrd\cyrm\cyro\cyrv\cyra}}%
+ \def\refname{%
+ {\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+% \def\refname{%
+% {\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+% \ \cyrp\cyro\cyrs\cyri\cyrl\cyra\cyrn\cyrsftsn}}%
+ \def\abstractname{%
+ {\cyr\CYRA\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}%
+% \def\abstractname{{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}}%
+ \def\bibname{%
+ {\cyr\CYRB\cyrii\cyrb\cyrl\cyrii\cyro\cyrgup\cyrr\cyra\cyrf\cyrii\cyrya}}%
+% \def\bibname{{\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}%
+ \def\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}%
+% \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}%
+ \def\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}%
+ \def\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}%
+ \def\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+ \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}%
+ \def\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk
+ \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}%
+ \def\indexname{{\cyr\CYRP\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
+ \def\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt
+ \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs.}}%
+% \def\figurename{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk}}%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}%
+% \def\tablename{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrya}}%
+ \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}%
+ \def\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}%
+ \def\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}%
+ \def\headtoname{{\cyr\CYRD\cyro}}%
+ \def\pagename{{\cyr\cyrs.}}%
+% \def\pagename{{\cyr\cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrk\cyra}}%
+ \def\seename{{\cyr\cyrd\cyri\cyrv.}}%
+ \def\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}}
+ \def\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}%
+ \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk\ %
+ \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}%
+ }
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\dateukrainian}
+%
+% The macro |\dateukrainian| redefines the command |\today| to produce
+% Ukrainian dates.
+%
+% \begin{macrocode}
+\def\dateukrainian{%
+ \def\today{\number\day~\ifcase\month\or
+ \cyrs\cyrii\cyrch\cyrn\cyrya\or
+ \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or
+ \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or
+ \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or
+ \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or
+ \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or
+ \cyrl\cyri\cyrp\cyrn\cyrya\or
+ \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or
+ \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or
+ \cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or
+ \cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or
+ \cyrg\cyrr\cyru\cyrd\cyrn\cyrya\fi
+ \space\number\year~\cyrr.}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\extrasukrainian}
+%
+% The macro |\extrasukrainian| will perform all the extra definitions
+% needed for the Ukrainian language. The macro |\noextrasukrainian|
+% is used to cancel the actions of |\extrasukrainian|.
+%
+% The first action we define is to switch on the selected Cyrillic
+% encoding whenever we enter `ukrainian'.
+%
+% \begin{macrocode}
+\addto\extrasukrainian{\cyrillictext}
+% \end{macrocode}
+%
+% When the encoding definition file was processed by \LaTeX\ the current
+% font encoding is stored in |\latinencoding|, assuming that \LaTeX\ uses
+% \texttt{T1} or \texttt{OT1} as default. Therefore we switch back to
+% |\latinencoding| whenever the Ukrainian language is no longer `active'.
+%
+% \begin{macrocode}
+\addto\noextrasukrainian{\latintext}
+% \end{macrocode}
+%
+% Next we must allow hyphenation in the Ukrainian words with apostrophe
+% whenever we enter `ukrainian'. This solution was proposed by
+% Vladimir Volovich <vvv@vvv.vsu.ru>
+%
+% \begin{macrocode}
+\addto\extrasukrainian{\lccode`\'=`\'}
+\addto\noextrasukrainian{\lccode`\'=0}
+% \end{macrocode}
+%
+% \begin{macro}{\verbatim@font}
+%
+% In order to get both Latin and Cyrillic letters in verbatim text we
+% need to change the definition of an internal \LaTeX\ command somewhat:
+%
+% \begin{macrocode}
+%\def\verbatim@font{%
+% \let\encodingdefault\latinencoding
+% \normalfont\ttfamily
+% \expandafter\def\csname\cyrillicencoding-cmd\endcsname##1##2{%
+% \ifx\protect\@typeset@protect
+% \begingroup\UseTextSymbol\cyrillicencoding##1\endgroup
+% \else\noexpand##1\fi}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The category code of the characters `\texttt{:}', `\texttt{;}',
+% `\texttt{!}', and `\texttt{?}' is made |\active| to insert a little
+% white space.
+%
+% For Ukrainian (as well as for Russian and German) the \texttt{"}
+% character also is made active.
+%
+% Note: It is \emph{very} questionable whether the Russian typesetting
+% tradition requires additional spacing before those punctuation signs.
+% Therefore, we make the corresponding code optional. If you need it,
+% then define the \texttt{frenchpunct} docstrip option in
+% \file{babel.ins}.
+%
+% Borrowed from french.
+% Some users dislike automatic insertion of a space before
+% `double punctuation', and prefer to decide themselves whether a
+% space should be added or not; so a hook |\NoAutoSpaceBeforeFDP|
+% is provided: if this command is added (in file |ukraineb.cfg|, or
+% anywhere in a document) |ukraineb| will respect your typing, and
+% introduce a suitable space before `double punctuation' \emph{if
+% and only if} a space is typed in the source file before those
+% signs.
+%
+% The command |\AutoSpaceBeforeFDP| switches back to the
+% default behavior of |ukraineb|.
+%
+% \begin{macrocode}
+%<*frenchpunct>
+\initiate@active@char{:}
+\initiate@active@char{;}
+%</frenchpunct>
+%<*frenchpunct|spanishligs>
+\initiate@active@char{!}
+\initiate@active@char{?}
+%</frenchpunct|spanishligs>
+\initiate@active@char{"}
+% \end{macrocode}
+%
+% The code above is necessary because we need extra active characters.
+% The character |"| is used as indicated in
+% table~\ref{tab:ukrainian-quote}.
+%
+% We specify that the Ukrainian group of shorthands should be used.
+%
+% \begin{macrocode}
+\addto\extrasukrainian{\languageshorthands{ukrainian}}
+% \end{macrocode}
+%
+% These characters are `turned on' once, later their definition may
+% vary.
+%
+% \begin{macrocode}
+\addto\extrasukrainian{%
+%<frenchpunct> \bbl@activate{:}\bbl@activate{;}%
+%<frenchpunct|spanishligs> \bbl@activate{!}\bbl@activate{?}%
+ \bbl@activate{"}}
+\addto\noextrasukrainian{%
+%<frenchpunct> \bbl@deactivate{:}\bbl@deactivate{;}%
+%<frenchpunct|spanishligs> \bbl@deactivate{!}\bbl@deactivate{?}%
+ \bbl@deactivate{"}}
+% \end{macrocode}
+%
+% The \texttt{X2} and \texttt{T2*} encodings do not contain
+% |spanish_shriek| and |spanish_query| symbols; as a consequence, the
+% ligatures `|?`|' and `|!`|' do not work with them (these characters are
+% useless for Cyrillic texts anyway). But we define the shorthands to
+% emulate these ligatures (optionally).
+%
+% We do not use |\latinencoding| here (but instead explicitly use
+% \texttt{OT1}) because the user may choose \texttt{T2A} to be the primary
+% encoding, but it does not contain these characters.
+%
+% \begin{macrocode}
+%<*spanishligs>
+\declare@shorthand{ukrainian}{?`}{\UseTextSymbol{OT1}\textquestiondown}
+\declare@shorthand{ukrainian}{!`}{\UseTextSymbol{OT1}\textexclamdown}
+%</spanishligs>
+% \end{macrocode}
+%
+% \begin{macro}{\ukrainian@sh@;@}
+% \begin{macro}{\ukrainian@sh@:@}
+% \begin{macro}{\ukrainian@sh@!@}
+% \begin{macro}{\ukrainian@sh@?@}
+%
+% We have to reduce the amount of white space before \texttt{;},
+% \texttt{:} and \texttt{!}. This should only happen in horizontal mode,
+% hence the test with |\ifhmode|.
+%
+% \begin{macrocode}
+%<*frenchpunct>
+\declare@shorthand{ukrainian}{;}{%
+ \ifhmode
+% \end{macrocode}
+%
+% In horizontal mode we check for the presence of a `space', `unskip' if
+% it exists and place a |0.1em| kerning.
+%
+% \begin{macrocode}
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+% \end{macrocode}
+% If no space has been typed, we add |\FDP@thinspace|
+% which will be
+% defined, up to the user's wishes, as an automatic added
+% thinspace, or as |\@empty|.
+%
+% \begin{macrocode}
+ \FDP@thinspace
+ \fi
+ \fi
+% \end{macrocode}
+%
+% Now we can insert a `|;|' character.
+%
+% \begin{macrocode}
+ \string;}
+% \end{macrocode}
+%
+% The other definitions are very similar.
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{:}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string:}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{!}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string!}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{?}{%
+ \ifhmode
+ \ifdim\lastskip>\z@
+ \unskip\nobreak\kern.1em
+ \else
+ \FDP@thinspace
+ \fi
+ \fi
+ \string?}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\AutoSpaceBeforeFDP}
+% \begin{macro}{\NoAutoSpaceBeforeFDP}
+% \begin{macro}{\FDP@thinspace}
+% |\FDP@thinspace| is defined as unbreakable
+% spaces if |\AutoSpaceBeforeFDP| is activated or as |\@empty| if
+% |\NoAutoSpaceBeforeFDP| is in use.
+% The default is |\AutoSpaceBeforeFDP|.
+% \begin{macrocode}
+\def\AutoSpaceBeforeFDP{%
+ \def\FDP@thinspace{\nobreak\kern.1em}}
+\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty}
+\AutoSpaceBeforeFDP
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\FDPon}
+% \begin{macro}{\FDPoff}
+%
+% The next macros allow to switch on/off activeness of double
+% punctuation signs.
+%
+% \begin{macrocode}
+\def\FDPon{\bbl@activate{:}%
+ \bbl@activate{;}%
+ \bbl@activate{?}%
+ \bbl@activate{!}}
+\def\FDPoff{\bbl@deactivate{:}%
+ \bbl@deactivate{;}%
+ \bbl@deactivate{?}%
+ \bbl@deactivate{!}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\system@sh@:@}
+% \begin{macro}{\system@sh@!@}
+% \begin{macro}{\system@sh@?@}
+% \begin{macro}{\system@sh@;@}
+%
+% When the active characters appear in an environment where their
+% Ukrainian behaviour is not wanted they should give an `expected'
+% result. Therefore we define shorthands at system level as well.
+%
+% \begin{macrocode}
+\declare@shorthand{system}{:}{\string:}
+\declare@shorthand{system}{;}{\string;}
+%</frenchpunct>
+%<*frenchpunct&!spanishligs>
+\declare@shorthand{system}{!}{\string!}
+\declare@shorthand{system}{?}{\string?}
+%</frenchpunct&!spanishligs>
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% To be able to define the function of `|"|', we first define a couple of
+% `support' macros.
+%
+% \begin{macro}{\dq}
+%
+% We save the original double quote character in |\dq| to keep it
+% available, the math accent |\"| can now be typed as `|"|'.
+%
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\reserved@a{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\reserved@a
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Now we can define the doublequote macros: german and french quotes.
+% We use definitions of these quotes made in babel.sty.
+% The french quotes are contained in the \texttt{T2*} encodings.
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{"`}{\glqq}
+\declare@shorthand{ukrainian}{"'}{\grqq}
+\declare@shorthand{ukrainian}{"<}{\flqq}
+\declare@shorthand{ukrainian}{">}{\frqq}
+% \end{macrocode}
+%
+% Some additional commands:
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{""}{\hskip\z@skip}
+\declare@shorthand{ukrainian}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+\declare@shorthand{ukrainian}{"=}{\nobreak-\hskip\z@skip}
+\declare@shorthand{ukrainian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+% \end{macrocode}
+%
+% The next two macros for |"-| and |"---| are somewhat different.
+% We must check whether the second token is a hyphen character:
+%
+% \begin{macrocode}
+\declare@shorthand{ukrainian}{"-}{%
+% \end{macrocode}
+%
+% If the next token is `|-|', we typeset an emdash, otherwise a hyphen
+% sign:
+%
+% \begin{macrocode}
+ \def\ukrainian@sh@tmp{%
+ \if\ukrainian@sh@next-\expandafter\ukrainian@sh@emdash
+ \else\expandafter\ukrainian@sh@hyphen\fi
+ }%
+% \end{macrocode}
+%
+% \TeX\ looks for the next token after the first `|-|': the meaning of
+% this token is written to |\ukrainian@sh@next| and |\ukrainian@sh@tmp| is
+% called.
+%
+% \begin{macrocode}
+ \futurelet\ukrainian@sh@next\ukrainian@sh@tmp}
+% \end{macrocode}
+%
+% Here are the definitions of hyphen and emdash. First the hyphen:
+%
+% \begin{macrocode}
+\def\ukrainian@sh@hyphen{%
+ \nobreak\-\bbl@allowhyphens}
+% \end{macrocode}
+%
+% For the emdash definition, there are the two parameters: we must `eat'
+% two last hyphen signs of our emdash\dots :
+% \begin{macrocode}
+\def\ukrainian@sh@emdash#1#2{\cdash-#1#2}
+% \end{macrocode}
+% \begin{macro}{\cdash}
+% \dots\ these two parameters are useful for another macro:
+% |\cdash|:
+% \begin{macrocode}
+%\ifx\cdash\undefined % should be defined earlier
+\def\cdash#1#2#3{\def\tempx@{#3}%
+\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}%
+ \ifx\tempx@\tempa@\@Acdash\else
+ \ifx\tempx@\tempb@\@Bcdash\else
+ \ifx\tempx@\tempc@\@Ccdash\else
+ \errmessage{Wrong usage of cdash}\fi\fi\fi}
+% \end{macrocode}
+% second parameter (or third for |\cdash|) shows what kind of emdash
+% to create in next step
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"---| & ordinary (plain) Cyrillic emdash inside text:
+% an unbreakable thinspace will be inserted before only in case of
+% a \textit{space} before the dash (it is necessary for dashes after
+% display maths formulae: there could be lists, enumerations etc.\
+% started with ``--- where $a$ is ...'' i.e., the dash starts a line).
+% (Firstly there were planned rather soft rules for user: he may put
+% a space before the dash or not. But it is difficult to place this
+% thinspace automatically, i.e., by checking modes because after
+% display formulae \TeX{} uses horizontal mode. Maybe there is a
+% misunderstanding? Maybe there is another way?) After a dash
+% a breakable thinspace is always placed; \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+% What is more grammatically: .2em or .2\fontdimen6\font ?
+\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi
+ \cyrdash\hskip.2em\ignorespaces}%
+% \end{macrocode}
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--~| & emdash in compound names or surnames
+% (like Mendeleev--Klapeiron); this dash has no space characters
+% around; after the dash some space is added
+% |\exhyphenalty| \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi
+ \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}%
+% \end{macrocode}
+% \begin{center}
+% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}}
+% |"--*| & for denoting direct speech (a space like |\enskip|
+% must follow the emdash); \\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\@Ccdash{\leavevmode
+ \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}%
+%\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cyrdash}
+% Finally the macro for ``body'' of the Cyrillic emdash.
+% The |\cyrdash| macro will be defined in case this macro hasn't been
+% defined in a fontenc file. For T2* fonts, cyrdash will be placed in
+% the code of the English emdash thus it uses ligature |---|.
+% \begin{macrocode}
+% Is there an IF necessary?
+\ifx\cyrdash\undefined
+ \def\cyrdash{\hbox to.8em{--\hss--}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% Here a really new macro---to place thinspace between initials.
+% This macro used instead of |\,| allows hyphenation in the following
+% surname.
+%
+% \begin{macrocode}
+%\declare@shorthand{ukrainian}{",}{\nobreak\hskip.2em\ignorespaces}
+% \end{macrocode}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% All that's left to do now is to define a couple of commands
+% for |"|.
+% \begin{macrocode}
+\def\mdqon{\bbl@activate{"}}
+\def\mdqoff{\bbl@deactivate{"}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The Ukrainian hyphenation patterns can be used with |\lefthyphenmin|
+% and |\righthyphenmin| set to~2.
+% \changes{ukraineb-1.1g}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% temporary hack:
+\ifx\englishhyphenmins\undefined
+ \def\englishhyphenmins{\tw@\thr@@}
+\fi
+% \end{macrocode}
+%
+% Now the action |\extrasukrainian| has to execute is to make sure that the
+% command |\frenchspacing| is in effect. If this is not the case the
+% execution of |\noextrasukrainian| will switch it off again.
+%
+% \begin{macrocode}
+\addto\extrasukrainian{\bbl@frenchspacing}
+\addto\noextrasukrainian{\bbl@nonfrenchspacing}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Next we add a new enumeration style for Ukrainian manuscripts with
+% Cyrillic letters, and later on we define some math operator names in
+% accordance with Ukrainian and Russian typesetting traditions.
+%
+% \begin{macro}{\Asbuk}
+%
+% We begin by defining |\Asbuk| which works like |\Alph|, but produces
+% (uppercase) Cyrillic letters intead of Latin ones. The letters CYRGUP,
+% and SFTSN are skipped, as usual for such enumeration.
+%
+% \begin{macrocode}
+\def\Asbuk#1{\expandafter\@Asbuk\csname c@#1\endcsname}
+\def\@Asbuk#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRIE\or
+ \CYRZH\or\CYRZ\or\CYRI\or\CYRII\or\CYRYI\or\CYRISHRT\or
+ \CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or\CYRP\or\CYRR\or
+ \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or\CYRCH\or
+ \CYRSH\or\CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\asbuk}
+%
+% The macro |\asbuk| is similar to |\alph|; it produces lowercase
+% Ukrainian letters.
+%
+% \begin{macrocode}
+\def\asbuk#1{\expandafter\@asbuk\csname c@#1\endcsname}
+\def\@asbuk#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrie\or
+ \cyrzh\or\cyrz\or\cyri\or\cyrii\or\cyryi\or\cyrishrt\or
+ \cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or\cyrp\or\cyrr\or
+ \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or\cyrch\or
+ \cyrsh\or\cyrshch\or\cyryu\or\cyrya\else\@ctrerr\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Set up default Cyrillic math alphabets. The math groups for cyrillic
+% letters are defined in the encoding definition files. First, declare
+% a new alphabet for symbols, |\cyrmathrm|, based on the symbol font
+% for Cyrillic letters defined in the encoding definition file. Note,
+% that by default Cyrillic letters are taken from upright font in math
+% mode (unlike Latin letters).
+% \begin{macrocode}
+%\RequirePackage{textmath}
+\@ifundefined{sym\cyrillicencoding letters}{}{%
+\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters}
+% \end{macrocode}
+% And we need a few commands to be able to switch to different variants.
+% \begin{macrocode}
+\DeclareMathAlphabet\cyrmathbf\cyrillicencoding
+ \rmdefault\bfdefault\updefault
+\DeclareMathAlphabet\cyrmathsf\cyrillicencoding
+ \sfdefault\mddefault\updefault
+\DeclareMathAlphabet\cyrmathit\cyrillicencoding
+ \rmdefault\mddefault\itdefault
+\DeclareMathAlphabet\cyrmathtt\cyrillicencoding
+ \ttdefault\mddefault\updefault
+%
+\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding
+ \sfdefault\bfdefault\updefault
+\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding
+ \rmdefault\bfdefault\itdefault
+}
+% \end{macrocode}
+%
+% Some math functions in Ukrainian and Russian math books have other
+% names: e.g., \texttt{sinh} in Russian is written as \texttt{sh} etc.
+% So we define a number of new math operators.
+%
+% |\sinh|:
+% \begin{macrocode}
+\def\sh{\mathop{\operator@font sh}\nolimits}
+% \end{macrocode}
+% |\cosh|:
+% \begin{macrocode}
+\def\ch{\mathop{\operator@font ch}\nolimits}
+% \end{macrocode}
+% |\tan|:
+% \begin{macrocode}
+\def\tg{\mathop{\operator@font tg}\nolimits}
+% \end{macrocode}
+% |\arctan|:
+% \begin{macrocode}
+\def\arctg{\mathop{\operator@font arctg}\nolimits}
+% \end{macrocode}
+% arcctg:
+% \begin{macrocode}
+\def\arcctg{\mathop{\operator@font arcctg}\nolimits}
+% \end{macrocode}
+% The following macro conflicts with |\th| defined in Latin~1 encoding:
+%
+% |\tanh|:
+% \changes{ukraineb-1.1k}{2004/05/21}{Change definition of \cs{th}
+% only for this language}
+% \begin{macrocode}
+\addto\extrasrussian{%
+ \babel@save{\th}%
+ \let\ltx@th\th
+ \def\th{\textormath{\ltx@th}%
+ {\mathop{\operator@font th}\nolimits}}%
+ }
+% \end{macrocode}
+% |\cot|:
+% \begin{macrocode}
+\def\ctg{\mathop{\operator@font ctg}\nolimits}
+% \end{macrocode}
+% |\coth|:
+% \begin{macrocode}
+\def\cth{\mathop{\operator@font cth}\nolimits}
+% \end{macrocode}
+% |\csc|:
+% \begin{macrocode}
+\def\cosec{\mathop{\operator@font cosec}\nolimits}
+% \end{macrocode}
+%
+% And finally some other Ukrainian and Russian mathematical symbols:
+% \begin{macrocode}
+\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits}
+\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits}
+\def\nsd{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrd.}}\nolimits}
+\def\nsk{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrk.}}\nolimits}
+\def\NSD{\mathop{\cyrmathrm{\CYRN\CYRS\CYRD}}\nolimits}
+\def\NSK{\mathop{\cyrmathrm{\CYRN\CYRS\CYRK}}\nolimits}
+ \def\nod{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrd.}}\nolimits} % ??????
+ \def\nok{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrk.}}\nolimits} % ??????
+ \def\NOD{\mathop{\cyrmathrm{\CYRN\CYRO\CYRD}}\nolimits} % ??????
+ \def\NOK{\mathop{\cyrmathrm{\CYRN\CYRO\CYRK}}\nolimits} % ??????
+\def\Proj{\mathop{\cyrmathrm{\CYRP\cyrr}}\nolimits}
+% \end{macrocode}
+%
+% This is for compatibility with older Ukrainian packages.
+% \begin{macrocode}
+\DeclareRobustCommand{\No}{%
+ \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}
+% \end{macrocode}
+%
+% The macro |\ldf@finish| takes care of looking for a configuration file,
+% setting the main language to be switched on at |\begin{document}| and
+% resetting the category code of \texttt{@} to its original value.
+%
+% \begin{macrocode}
+\ldf@finish{ukrainian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/ukraineb.ins b/Master/texmf-dist/source/generic/babel/ukraineb.ins
new file mode 100644
index 00000000000..73b35f110d3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/ukraineb.ins
@@ -0,0 +1,147 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/03/13}
+\def\batchfile{ukraineb.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\usedir{tex/generic/babel}
+\keepsilent
+
+\usepreamble\mainpreamble
+
+\generate{\file{ukraineb.ldf}{\from{ukraineb.dtx}{code}}}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.fd}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/user.drv b/Master/texmf-dist/source/generic/babel/user.drv
new file mode 100644
index 00000000000..9b45647aa69
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/user.drv
@@ -0,0 +1,170 @@
+%%
+%% This is file `user.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% babel.dtx (with options: `driver,user')
+%%
+%% This file was generated from file(s) of the Babel system.
+%% ---------------------------------------------------------
+%%
+%% Copyright (C) 2004 Johannes Braams. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+%%
+%% File 'babel.dtx'
+%%\ProvidesFile{babel.dtx}[2005/05/21 v3.8g The Babel package]
+%% Babel package for LaTeX2e.
+%% Copyright (C) 1989 -- 2005 by Johannes Braams,
+%% TeXniek
+%% all rights reserved.
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+\ifx\ProvidesFile\@undefined
+ \def\ProvidesFile#1[#2 #3 #4]{%
+ \wlog{File: #1 #4 #3 <#2>}%
+ \let\ProvidesFile\@undefined
+ }
+\fi
+\ProvidesFile{user.drv}
+ [2005/05/21 v3.8g %
+]
+\documentclass{ltxdoc}
+\usepackage{url,t1enc,supertabular}
+\usepackage[icelandic,english]{babel}
+\DoNotIndex{\!,\',\,,\.,\-,\:,\;,\?,\/,\^,\`,\@M}
+\DoNotIndex{\@,\@ne,\@m,\@afterheading,\@date,\@endpart}
+\DoNotIndex{\@hangfrom,\@idxitem,\@makeschapterhead,\@mkboth}
+\DoNotIndex{\@oddfoot,\@oddhead,\@restonecolfalse,\@restonecoltrue}
+\DoNotIndex{\@starttoc,\@unused}
+\DoNotIndex{\accent,\active}
+\DoNotIndex{\addcontentsline,\advance,\Alph,\arabic}
+\DoNotIndex{\baselineskip,\begin,\begingroup,\bf,\box,\c@secnumdepth}
+\DoNotIndex{\catcode,\centering,\char,\chardef,\clubpenalty}
+\DoNotIndex{\columnsep,\columnseprule,\crcr,\csname}
+\DoNotIndex{\day,\def,\dimen,\discretionary,\divide,\dp,\do}
+\DoNotIndex{\edef,\else,\@empty,\end,\endgroup,\endcsname,\endinput}
+\DoNotIndex{\errhelp,\errmessage,\expandafter,\fi,\filedate}
+\DoNotIndex{\fileversion,\fmtname,\fnum@figure,\fnum@table,\fontdimen}
+\DoNotIndex{\gdef,\global}
+\DoNotIndex{\hbox,\hidewidth,\hfil,\hskip,\hspace,\ht,\Huge,\huge}
+\DoNotIndex{\ialign,\if@twocolumn,\ifcase,\ifcat,\ifhmode,\ifmmode}
+\DoNotIndex{\ifnum,\ifx,\immediate,\ignorespaces,\input,\item}
+\DoNotIndex{\kern}
+\DoNotIndex{\labelsep,\Large,\large,\labelwidth,\lccode,\leftmargin}
+\DoNotIndex{\lineskip,\leavevmode,\let,\list,\ll,\long,\lower}
+\DoNotIndex{\m@ne,\mathchar,\mathaccent,\markboth,\month,\multiply}
+\DoNotIndex{\newblock,\newbox,\newcount,\newdimen,\newif,\newwrite}
+\DoNotIndex{\nobreak,\noexpand,\noindent,\null,\number}
+\DoNotIndex{\onecolumn,\or}
+\DoNotIndex{\p@,par, \parbox,\parindent,\parskip,\penalty}
+\DoNotIndex{\protect,\ps@headings}
+\DoNotIndex{\quotation}
+\DoNotIndex{\raggedright,\raise,\refstepcounter,\relax,\rm,\setbox}
+\DoNotIndex{\section,\setcounter,\settowidth,\scriptscriptstyle}
+\DoNotIndex{\sfcode,\sl,\sloppy,\small,\space,\spacefactor,\strut}
+\DoNotIndex{\string}
+\DoNotIndex{\textwidth,\the,\thechapter,\thefigure,\thepage,\thepart}
+\DoNotIndex{\thetable,\thispagestyle,\titlepage,\tracingmacros}
+\DoNotIndex{\tw@,\twocolumn,\typeout,\uppercase,\usecounter}
+\DoNotIndex{\vbox,\vfil,\vskip,\vspace,\vss}
+\DoNotIndex{\widowpenalty,\write,\xdef,\year,\z@,\z@skip}
+\makeatletter
+\gdef\dlqq{{\setbox\tw@=\hbox{,}\setbox\z@=\hbox{''}%
+ \dimen\z@=\ht\z@ \advance\dimen\z@-\ht\tw@
+ \setbox\z@=\hbox{\lower\dimen\z@\box\z@}\ht\z@=\ht\tw@
+ \dp\z@=\dp\tw@ \box\z@\kern-.04em}}
+\makeatother
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\newcommand*\MF{{\manual META}\-{\manual FONT}}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\Babel{\textsf{Babel}}
+\newcommand*\m[1]{\mbox{$\langle$\it#1\/$\rangle$}}
+\newcommand*\langvar{\m{lang}}
+\newcommand*\note[1]{}
+\newcommand*\bsl{\protect\bslash}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\Lenv[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newcommand*\cls[1]{\texttt{#1}}
+\newcommand*\pkg[1]{\texttt{#1}}
+\newcommand*\langdeffile[1]{%
+ \DocInput{#1}}
+\DisableCrossrefs
+\setcounter{StandardModuleDepth}{1}
+\OnlyDescription
+\begin{document}
+\DocInput{babel.dtx}
+^^A% \changes{babel~3.6i}{1997/02/22}{Added kannada}
+\clearpage
+\langdeffile{esperanto.dtx}
+\langdeffile{interlingua.dtx}
+\langdeffile{dutch.dtx}
+\langdeffile{english.dtx}
+\langdeffile{germanb.dtx}
+\langdeffile{ngermanb.dtx}
+\langdeffile{breton.dtx}
+\langdeffile{welsh.dtx}
+\langdeffile{irish.dtx}
+\langdeffile{scottish.dtx}
+\langdeffile{greek.dtx}
+\langdeffile{frenchb.dtx}
+\langdeffile{italian.dtx}
+\langdeffile{latin.dtx}
+\langdeffile{portuges.dtx}
+\langdeffile{spanish.dtx}
+\langdeffile{catalan.dtx}
+\langdeffile{galician.dtx}
+\langdeffile{basque.dtx}
+\langdeffile{romanian.dtx}
+\langdeffile{danish.dtx}
+\langdeffile{icelandic.dtx}
+\langdeffile{norsk.dtx}
+\langdeffile{swedish.dtx}
+\langdeffile{samin.dtx}
+\langdeffile{finnish.dtx}
+\langdeffile{magyar.dtx}
+\langdeffile{estonian.dtx}
+\langdeffile{croatian.dtx}
+\langdeffile{czech.dtx}
+\langdeffile{polish.dtx}
+\langdeffile{serbian.dtx}
+\langdeffile{slovak.dtx}
+\langdeffile{slovene.dtx}
+\langdeffile{russianb.dtx}
+\langdeffile{bulgarian.dtx}
+\langdeffile{ukraineb.dtx}
+\langdeffile{lsorbian.dtx}
+\langdeffile{usorbian.dtx}
+\langdeffile{turkish.dtx}
+\langdeffile{hebrew.dtx}
+\DocInput{hebinp.dtx}
+\DocInput{hebrew.fdd}
+\DocInput{heb209.dtx}
+\langdeffile{bahasa.dtx}
+\clearpage
+\DocInput{bbplain.dtx}
+\end{document}
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\endinput
+%%
+%% End of file `user.drv'.
diff --git a/Master/texmf-dist/source/generic/babel/usorbian.dtx b/Master/texmf-dist/source/generic/babel/usorbian.dtx
new file mode 100644
index 00000000000..e4a9ebe26df
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/usorbian.dtx
@@ -0,0 +1,360 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{298}
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{usorbian.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{usorbian}
+%\fi
+%\ProvidesFile{usorbian.dtx}
+ [2005/03/31 v1.0i Upper Sorbian support from the babel system]
+%\iffalse
+%% File `usorbian.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2005
+%% by Johannes Braams, TeXniek
+%
+%% Upper Sorbian Language Definition File
+%% Copyright (C) 1994 - 2004
+%% by Eduard Werner
+% Werner, Eduard",
+% Serbski institut z. t.,
+% Dw\'orni\v{s}\'cowa 6
+% 02625 Budy\v{s}in/Bautzen
+% Germany",
+% (??)3591 497223",
+% edi at kaihh.hanse.de",
+%
+%% Please report errors to: Eduard Werner edi at kaihh.hanse.de
+%%
+% This file is part of the babel system, it provides the source
+% code for the Upper Sorbian definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*\TeXhax{\TeX hax}
+\newcommand*\babel{\textsf{babel}}
+\newcommand*\langvar{$\langle \it lang \rangle$}
+\newcommand*\note[1]{}
+\newcommand*\Lopt[1]{\textsf{#1}}
+\newcommand*\file[1]{\texttt{#1}}
+\newfont{\logo}{logo10}
+\newcommand*\MF{{\logo METAFONT}}
+\begin{document}
+ \DocInput{usorbian.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{usorbian.dtx}
+%
+% \changes{usorbian-0.1}{1994/10/10}{First version}
+% \changes{usorbian-0.1b}{1994/10/18}{Made it possible to run through
+% \LaTeX; added \cs{MF} and removed extra \cs{end{macro}}}
+% \changes{usorbian-1.0d}{1996/07/13}{Replaced \cs{undefined} with
+% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
+% with \LaTeX}
+% \changes{usorbian-1.0e}{1996/10/10}{Moved the definition of
+% \cs{atcatcode} right to the beginning.}
+%
+% \section{The Upper Sorbian language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate. It was written by Eduard Werner
+% (\texttt{edi@kaihh.hanse.de}).} It defines all the
+% language-specific macros for Upper Sorbian.
+%
+% \StopEventually{}
+%
+% The macro |\LdfInit| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{LdfInit} to perform
+% initial checks}
+% \begin{macrocode}
+%<*code>
+\LdfInit{usorbian}\captionsusorbian
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{usorbian} will be an `unknown' languagein which
+% case we have to make it known. So we check for the existence of
+% |\l@usorbian| to see whether we have to do something here.
+%
+% \begin{macrocode}
+\ifx\l@usorbian\@undefined
+ \@nopatterns{Usorbian}
+ \adddialect\l@usorbian0\fi
+% \end{macrocode}
+%
+% The next step consists of defining commands to switch to (and
+% from) the Upper Sorbian language.
+%
+% \begin{macro}{\captionsusorbian}
+% The macro |\captionsusorbian| defines all strings used in the four
+% standard documentclasses provided with \LaTeX.
+% \changes{usorbian-0.1c}{1994/11/27}{Removed two typos (Kapitel and
+% Dodatki)}
+% \changes{usorbian-1.0b}{1995/07/04}{Added \cs{proofname} for
+% AMS-\LaTeX}
+% \changes{usorbian-1.0i}{2000/09/22}{Added \cs{glossaryname}}
+% \begin{macrocode}
+\addto\captionsusorbian{%
+ \def\prefacename{Zawod}%
+ \def\refname{Referency}%
+ \def\abstractname{Abstrakt}%
+ \def\bibname{Literatura}%
+ \def\chaptername{Kapitl}%
+ \def\appendixname{Dodawki}%
+ \def\contentsname{Wobsah}%
+ \def\listfigurename{Zapis wobrazow}%
+ \def\listtablename{Zapis tabulkow}%
+ \def\indexname{Indeks}%
+ \def\figurename{Wobraz}%
+ \def\tablename{Tabulka}%
+ \def\partname{D\'z\v el}%
+ \def\enclname{P\v r\l oha}%
+ \def\ccname{CC}%
+ \def\headtoname{Komu}%
+ \def\pagename{Strona}%
+ \def\seename{hl.}%
+ \def\alsoname{hl.~te\v z}
+ \def\proofname{Proof}% <-- needs translation
+ \def\glossaryname{Glossary}% <-- Needs translation
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newdateusorbian}
+% The macro |\newdateusorbian| redefines the command |\today| to
+% produce Upper Sorbian dates.
+% \changes{usorbian-1.0g}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{usorbian-1.0g}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\newdateusorbian{%
+ \def\today{\number\day.~\ifcase\month\or
+ januara\or februara\or m\v erca\or apryla\or meje\or junija\or
+ julija\or awgusta\or septembra\or oktobra\or
+ nowembra\or decembra\fi
+ \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\olddateusorbian}
+% The macro |\olddateusorbian| redefines the command |\today| to
+% produce old-style Upper Sorbian dates.
+% \changes{usorbian-1.0g}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{usorbian-1.0g}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \begin{macrocode}
+\def\olddateusorbian{%
+ \def\today{\number\day.~\ifcase\month\or
+ wulkeho r\'o\v zka\or ma\l eho r\'o\v zka\or nal\v etnika\or
+ jutrownika\or r\'o\v zownika\or sma\v znika\or pra\v znika\or
+ \v znjenca\or po\v znjenca\or winowca\or nazymnika\or
+ hodownika\fi \space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% The default will be the new-style dates.
+% \begin{macrocode}
+\let\dateusorbian\newdateusorbian
+% \end{macrocode}
+%
+% \begin{macro}{\extrasusorbian}
+% The macro |\extrasusorbian| will perform all the extra
+% definitions needed for the Upper Sorbian language. It's pirated
+% from |germanb.sty|. The macro |\noextrasusorbian| is used to
+% cancel the actions of |\extrasusorbian|.
+%
+% Because for Upper Sorbian (as well as for Dutch) the \texttt{"}
+% character is made active. This is done once, later on its
+% definition may vary.
+% \begin{macrocode}
+\initiate@active@char{"}
+\addto\extrasusorbian{\languageshorthands{usorbian}}
+\addto\extrasusorbian{\bbl@activate{"}}
+% \end{macrocode}
+% Don't forget to turn the shorthands off again.
+% \changes{usorbian-1.0h}{1999/12/17}{Deactivate shorthands ouside of
+% Upper Sorbian}
+% \begin{macrocode}
+\addto\noextrasusorbian{\bbl@deactivate{"}}
+% \end{macrocode}
+%
+% In order for \TeX\ to be able to hyphenate German Upper Sorbian
+% words which contain `\ss' we have to give the character a nonzero
+% |\lccode| (see Appendix H, the \TeX book).
+% \begin{macrocode}
+\addto\extrasusorbian{\babel@savevariable{\lccode`\^^Y}%
+ \lccode`\^^Y`\^^Y}
+% \end{macrocode}
+% The umlaut accent macro |\"| is changed to lower the umlaut dots.
+% The redefinition is done with the help of |\umlautlow|.
+% \begin{macrocode}
+\addto\extrasusorbian{\babel@save\"\umlautlow}
+\addto\noextrasusorbian{\umlauthigh}
+% \end{macrocode}
+% The Upper Sorbian hyphenation patterns can be used with
+% |\lefthyphenmin| and |\righthyphenmin| set to~2.
+% \changes{usorbian-1.0i}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\tw@}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{usorbian-1.0a}{1995/05/27}{Removed stuff that has been
+% moved to \file{babel.def}}
+%
+% \begin{macro}{\dq}
+% We save the original double quote character in |\dq| to keep it
+% available, the math accent |\"| can now be typed as |"|. Also we
+% store the original meaning of the command |\"| for future use.
+% \begin{macrocode}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+ \def\@SS{\mathchar"7019 }
+ \def\dq{"}}
+\x
+% \end{macrocode}
+% \end{macro}
+%
+% Now we can define the doublequote macros: the umlauts,
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"a}{\textormath{\"{a}}{\ddot a}}
+\declare@shorthand{usorbian}{"o}{\textormath{\"{o}}{\ddot o}}
+\declare@shorthand{usorbian}{"u}{\textormath{\"{u}}{\ddot u}}
+\declare@shorthand{usorbian}{"A}{\textormath{\"{A}}{\ddot A}}
+\declare@shorthand{usorbian}{"O}{\textormath{\"{O}}{\ddot O}}
+\declare@shorthand{usorbian}{"U}{\textormath{\"{U}}{\ddot U}}
+% \end{macrocode}
+% tremas,
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"e}{\textormath{\"{e}}{\ddot e}}
+\declare@shorthand{usorbian}{"E}{\textormath{\"{E}}{\ddot E}}
+\declare@shorthand{usorbian}{"i}{\textormath{\"{\i}}{\ddot\imath}}
+\declare@shorthand{usorbian}{"I}{\textormath{\"{I}}{\ddot I}}
+% \end{macrocode}
+% usorbian es-zet (sharp s),
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"s}{\textormath{\ss{}}{\@SS{}}}
+\declare@shorthand{usorbian}{"S}{SS}
+% \end{macrocode}
+% german and french quotes,
+% \changes{usorbian-1.0f}{1997/04/03}{Removed empty groups after
+% double quote and guillemot characters}
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"`}{%
+ \textormath{\quotedblbase}{\mbox{\quotedblbase}}}
+\declare@shorthand{usorbian}{"'}{%
+ \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}}
+\declare@shorthand{usorbian}{"<}{%
+ \textormath{\guillemotleft}{\mbox{\guillemotleft}}}
+\declare@shorthand{usorbian}{">}{%
+ \textormath{\guillemotright}{\mbox{\guillemotright}}}
+% \end{macrocode}
+% discretionary commands
+% \changes{usorbian-1.0c}{1996/01/24}{Now use \cs{bbl@disc}}
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"c}{\textormath{\bbl@disc ck}{c}}
+\declare@shorthand{usorbian}{"C}{\textormath{\bbl@disc CK}{C}}
+\declare@shorthand{usorbian}{"f}{\textormath{\bbl@disc f{ff}}{f}}
+\declare@shorthand{usorbian}{"F}{\textormath{\bbl@disc F{FF}}{F}}
+\declare@shorthand{usorbian}{"l}{\textormath{\bbl@disc l{ll}}{l}}
+\declare@shorthand{usorbian}{"L}{\textormath{\bbl@disc L{LL}}{L}}
+\declare@shorthand{usorbian}{"m}{\textormath{\bbl@disc m{mm}}{m}}
+\declare@shorthand{usorbian}{"M}{\textormath{\bbl@disc M{MM}}{M}}
+\declare@shorthand{usorbian}{"n}{\textormath{\bbl@disc n{nn}}{n}}
+\declare@shorthand{usorbian}{"N}{\textormath{\bbl@disc N{NN}}{N}}
+\declare@shorthand{usorbian}{"p}{\textormath{\bbl@disc p{pp}}{p}}
+\declare@shorthand{usorbian}{"P}{\textormath{\bbl@disc P{PP}}{P}}
+\declare@shorthand{usorbian}{"t}{\textormath{\bbl@disc t{tt}}{t}}
+\declare@shorthand{usorbian}{"T}{\textormath{\bbl@disc T{TT}}{T}}
+% \end{macrocode}
+% and some additional commands:
+% \begin{macrocode}
+\declare@shorthand{usorbian}{"-}{\nobreak\-\bbl@allowhyphens}
+\declare@shorthand{usorbian}{"|}{%
+ \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}
+\declare@shorthand{usorbian}{""}{\hskip\z@skip}
+% \end{macrocode}
+%
+% \begin{macro}{\mdqon}
+% \begin{macro}{\mdqoff}
+% \begin{macro}{\ck}
+% All that's left to do now is to define a couple of commands
+% for reasons of compatibility with \file{german.sty}.
+% \changes{usorbian-1.0g}{1998/06/07}{Now use \cs{shorthandon} and
+% \cs{shorthandoff}}
+% \begin{macrocode}
+\def\mdqon{\shorthandon{"}}
+\def\mdqoff{\shorthandoff{"}}
+\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{ldf@finish} to wrap
+% up}
+% \begin{macrocode}
+\ldf@finish{usorbian}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\endinput
diff --git a/Master/texmf-dist/source/generic/babel/welsh.dtx b/Master/texmf-dist/source/generic/babel/welsh.dtx
new file mode 100644
index 00000000000..95965fcfaed
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/welsh.dtx
@@ -0,0 +1,207 @@
+% \iffalse meta-comment
+%
+% Copyright 1989-2005 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
+% \CheckSum{97}
+%
+% \iffalse
+% Tell the \LaTeX\ system who we are and write an entry on the
+% transcript.
+%<*dtx>
+\ProvidesFile{welsh.dtx}
+%</dtx>
+%<code>\ProvidesLanguage{welsh}
+%\fi
+%\ProvidesFile{welsh.dtx}
+ [2005/03/31 v1.0d Welsh support from the babel system]
+%\iffalse
+%% File `welsh.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 -- 2005
+%% by Johannes Braams, TeXniek
+%
+%% Please report errors to: J.L. Braams
+%% babel at braams.cistron.nl
+%
+% This file is part of the babel system, it provides the source
+% code for the Welsh language definition file.
+%<*filedriver>
+\documentclass{ltxdoc}
+\newcommand*{\TeXhax}{\TeX hax}
+\newcommand*{\babel}{\textsf{babel}}
+\newcommand*{\langvar}{$\langle \mathit lang \rangle$}
+\newcommand*{\note}[1]{}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\begin{document}
+ \DocInput{welsh.dtx}
+\end{document}
+%</filedriver>
+%\fi
+% \GetFileInfo{welsh.dtx}
+%
+% \section{The Welsh language}
+%
+% The file \file{\filename}\footnote{The file described in this
+% section has version number \fileversion\ and was last revised on
+% \filedate.} defines all the language definition macros for the
+% Welsh language.
+%
+% For this language currently no special definitions are needed or
+% available.
+%
+% \StopEventually{}
+%
+% The macro |\ldf@init| takes care of preventing that this file is
+% loaded more than once, checking the category code of the
+% \texttt{@} sign, etc.
+% \begin{macrocode}
+%<*code>
+\LdfInit{welsh}{captionswelsh}
+% \end{macrocode}
+%
+% When this file is read as an option, i.e. by the |\usepackage|
+% command, \texttt{welsh} could be an `unknown' language in
+% which case we have to make it known. So we check for the
+% existence of |\l@welsh| to see whether we have to do
+% something here.
+%
+% \begin{macrocode}
+\ifx\undefined\l@welsh
+ \@nopatterns{welsh}
+ \adddialect\l@welsh0\fi
+% \end{macrocode}
+% The next step consists of defining commands to switch to (and
+% from) the Welsh language.
+%
+% \begin{macro}{\welshhyphenmins}
+% This macro is used to store the correct values of the hyphenation
+% parameters |\lefthyphenmin| and |\righthyphenmin|.
+% \changes{welsh-1.0c}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% \begin{macrocode}
+\providehyphenmins{\CurrentOption}{\tw@\thr@@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captionswelsh}
+% The macro |\captionswelsh| defines all strings used in the
+% four standard documentclasses provided with \LaTeX.
+% \changes{welsh-1.0c}{2000/09/20}{Added \cs{glossaryname}}
+% \changes{welsh-1.0d}{2005/03/31}{Provided the translation for
+% Glossary}
+% \begin{macrocode}
+\def\captionswelsh{%
+ \def\prefacename{Rhagair}%
+ \def\refname{Cyfeiriadau}%
+ \def\abstractname{Crynodeb}%
+ \def\bibname{Llyfryddiaeth}%
+ \def\chaptername{Pennod}%
+ \def\appendixname{Atodiad}%
+ \def\contentsname{Cynnwys}%
+ \def\listfigurename{Rhestr Ddarluniau}%
+ \def\listtablename{Rhestr Dablau}%
+ \def\indexname{Mynegai}%
+ \def\figurename{Darlun}%
+ \def\tablename{Taflen}%
+ \def\partname{Rhan}%
+ \def\enclname{amgae\"edig}%
+ \def\ccname{cop\"\i au}%
+ \def\headtoname{At}% % `at' on letters meaning `to ( a person)'
+ % `to (a place)' is `i' in Welsh
+ \def\pagename{tudalen}%
+ \def\seename{gweler}%
+ \def\alsoname{gweler hefyd}%
+ \def\proofname{Prawf}%
+ \def\glossaryname{Rhestr termau}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datewelsh}
+% The macro |\datewelsh| redefines the command |\today| to
+% produce welsh dates.
+% \changes{welsh-1.0b}{1997/10/01}{Use \cs{edef} to define
+% \cs{today} to save memory}
+% \changes{welsh-1.0b}{1998/03/28}{use \cs{def} instead of
+% \cs{edef}}
+% \changes{welsh-1.0d}{2005/03/31}{removed `a viz' from the definition
+% of \cs{today}}
+% \begin{macrocode}
+\def\datewelsh{%
+ \def\today{\ifnum\day=1\relax 1\/$^{\mathrm{a\tilde{n}}}$\else
+ \number\day\fi\space\ifcase\month\or
+ Ionawr\or Chwefror\or Mawrth\or Ebrill\or
+ Mai\or Mehefin\or Gorffennaf\or Awst\or
+ Medi\or Hydref\or Tachwedd\or Rhagfyr\fi
+ \space\number\year}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extraswelsh}
+% \begin{macro}{\noextraswelsh}
+% The macro |\extraswelsh| will perform all the extra
+% definitions needed for the welsh language. The macro
+% |\noextraswelsh| is used to cancel the actions of
+% |\extraswelsh|. For the moment these macros are empty but
+% they are defined for compatibility with the other
+% language definition files.
+%
+% \begin{macrocode}
+\addto\extraswelsh{}
+\addto\noextraswelsh{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The macro |\ldf@finish| takes care of looking for a
+% configuration file, setting the main language to be switched on
+% at |\begin{document}| and resetting the category code of
+% \texttt{@} to its original value.
+% \begin{macrocode}
+\ldf@finish{welsh}
+%</code>
+% \end{macrocode}
+%
+% \Finale
+%\endinput
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
diff --git a/Master/texmf-dist/source/generic/babel/welsh.ins b/Master/texmf-dist/source/generic/babel/welsh.ins
new file mode 100644
index 00000000000..a807ec6272b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/babel/welsh.ins
@@ -0,0 +1,148 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-2005 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 LaTeX base distribution 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{1999/04/11}
+\def\batchfile{welsh.ins}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.3c or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution 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.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2005 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\usepreamble\mainpreamble
+\generate{\file{welsh.ldf}{\from{welsh.dtx}{code}}
+ }
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput