% \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{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}
        [2003/05/23 v1.2l Galician support from the babel system]
%\iffalse
%% File `galician.dtx'
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 - 2003
%%           by Johannes Braams, TeXniek
%
%% Galician Language Definition File
%% Copyright (C) 1989 - 2001
%%           by Manuel Carriba <mcarriba@eunetcom.net>
%%              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 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@eunetcom.net)
%
%    The file spanish.sty was written by Julio Sanchez,
%    (jsanchez@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
