% \iffalse meta-comment
%
% Copyright 1989-2003 Johannes L. Braams and any individual authors
% listed elsewhere in this file.  All rights reserved.
% 
% This file is part of the Babel system release 3.7.
% --------------------------------------------------
% 
% It may be distributed under the terms of the LaTeX Project Public
% License, as described in lppl.txt in the base LaTeX distribution.
% Either version 1.2 or, at your option, any later version.
% \fi
% \CheckSum{260}
%\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}
        [2003/10/02 v1.4r Esperanto support from the babel system]
%\iffalse
%% File 'esperanto.dtx'
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 - 2003
%%           by Johannes Braams, TeXniek
%
%% 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 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
