% \iffalse meta-comment
%
% Copyright 1989-2008 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{2264}
% \ProvidesFile{galician.dtx}
%       [2008/07/06 v4.3c Galician support from the babel system] 
%\iffalse
%% File `galician.dtx'
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 - 2008
%%           by Johannes Braams, TeXniek
%
%% Galcian Language Definition File
%% Copyright (C) 1989 - 2006
%%           by Manuel Carriba mcarriba at eunetcom.net
%%           Johannes Braams, TeXniek
%% Copyright (C) 2007 - 2008
%%           by Javier A. M\'ugica
%%           Johannes Braams, TeXniek
%
%% Please report errors to: Javier A. Mugica (preferably)
%%                          jmugica at digi21.net
%%                          J.L. Braams
%%                          babel at braams.xs4all.nl
%
%    This file is part of the babel system, it provides the source
%    code for the Galician language definition file.
%    The original version of the file spanish.dtx was written by Javier Bezos.
%
%<*filedriver>
\documentclass[galician,a4paper]{ltxdoc}
\usepackage[activeacute]{babel}
%Small suport for the input encoding
\catcode`\á=\active  \defá{\'a}
\catcode`\é=\active  \defé{\'e}
\catcode`\í=\active  \defí{\'\i}
\catcode`\ó=\active  \defó{\'o}
\catcode`\ú=\active  \defú{\'u}
\catcode`\ñ=\active  \defñ{\~n}
%end

%\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 Novo en #1}}

\newcommand\nm[1]{\unskip\,$^{#1}$}
\newcommand\nt[1]{\quad$^{#1}$\,\ignorespaces}

\makeatletter
  \renewcommand\@biblabel{}
\makeatother

\newcommand\DOT[1]{\msc{DOT},~#1}
\newcommand\DTL[1]{\msc{DTL},~#1}
\newcommand\MEA[1]{\msc{MEA},~#1}

\raggedright
\addtolength{\oddsidemargin}{-2pc}
\addtolength{\textwidth}{2pc}
\setlength{\parindent}{1em}

\OnlyDescription
\begin{document}
   \DocInput{galician.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
% 
% ^^A\def\langdeffile{}
% \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 galician.dtx =========
%
% \title{Estilo \textsf{galician} para o sistema \babel\\[10pt]
%       \large Versión 4.3, de 29 de xaneiro do 2007}
%
% \author{Javier Múgica\footnote{O autor orixinal foi Javier Bezos.
%   Foi traduciro por min do castelán en xaneiro do 2007, e desde 
%   entón e mantido e actualizado por min.}}
%
% \date{} ^^A@#
%
% \maketitle
% 
% {\small\tableofcontents}
%
%% \section{\textsf{galician} coma lingua principal}
% 
% En \babel{} considérase que a última lingua citada en |\usepackage| e |\documentclass|,
% por esta orde, é a lingua principal. Se a lingua principal é |galician|, actívase o grupo
% |\layoutgalician| que adapta varios elementos ós usos tipogr'aficos galegos do seguinte modo:
%
% \begin{itemize}
%
% \item[$\diamond$] |enumerate| e |itemize|\vadjust{\nobreak}\\[1ex]
%
% O primeiro usa a seguinte secuencia:\vadjust{\nobreak}\\
% \quad 1.\\
% \qquad \emph{a})\\
% \quad\qquad 1)\\
% \qquad\qquad \emph{a$'$})\\
% O segundo a seguinte:\\
% \quad\leavevmode\hbox to 1.2ex
%     {\hss\vrule height .95ex width .8ex depth -.15ex\hss}\\
% \qquad\textbullet\\
% \quad\qquad $\circ$\\
% \qquad\qquad $\diamond$
%
% Dúas órdenes permiten outros estilos en |itemize|: con |\galiciandashitems| cámbiase a raias en tódo-los niveis
% e con |\galiciansignitems|, a \textbullet{} $\circ$
% $\diamond$ $\triangleright$.
%
% \item[$\diamond$] |\alph| e |\Alph|\\[1ex]
%
% Inclúen o e'ne, pero non k, j, w nin y.
%
% \item[$\diamond$] |\fnsymbol|\\[1ex]
%
% Empréganse un, dous, tres... asteriscos (*, **, ***, etc.),
% en lugar da sucesi'on angloamericana de cruces, barras,
% etc.\footnote{\DOT{162}.}
%
% \item[$\diamond$] |\guillemotleft| e |\guillemotright|\\[1ex]
%
% As comiñas latinas para |OT1| son menos angulosas e xenéranse cunhas puntas de frecha |lasy|.
%
% \item[$\diamond$] |\roman|\\[1ex]
%
% Os números romanos en minúscula son propios das obras inglesas e non se empregan no continente.
% Por iso se redefine |\roman| para que produza versalitas.
%
% \begin{quote}\small
% \textbf{Nota.} MakeIndex non pode entender a forma na que
% |\roman| escribe o n'umero de p'axina, polo que
% elimina as liñas afectadas. Por iso o aquivo |.idx|
% ten que ser convertido antes de ser procesado con MakeIndex.
% Con este paquete proporciónase a utilidade |glromidx.tex| que se
% encarga diso. Simplemente componse ese arquivo con \LaTeX{}
% e a continuaci'on respóndese ás preguntas que se formulan.
% Este proceso non é necesario se non se introduciu ningunha
% entrada de 'indice en p'axinas numeradas con |\roman| (o que ser'a
% o máis normal). Se un s'imbolo propio de \emph{MakeIndex} xenerara
% problemas, debe encerrarse entre chaves: \verb={"|}=.
% \end{quote}
%
% \item[$\diamond$] |\section|, |\subsection|, etc.\\[1ex]
%
% Os n'umeros nos t'itulos est'an seguidos dun punto tanto no texto coma
% no 'indice. Adem'ais, o primeiro parágrafo tra-lo título non elimina a sangr'ia
% (de novo, un costume angloamericano).
% 
% \end{itemize}
%
% Estes cambios funcionan coas clases est'andar ~---con otras
% tal vez algún deles non teña efecto--- e persisten durante
% todo o documento (non se poden desactivar). Ningún deles é
% necesario para compoñer o documento, aínda que naturalmente
% o resultado ser'a distinto.
% 
% \begin{itemize}
%
% \item[$\diamond$] |\selectgalician*|\vadjust{\nobreak}\\[1ex]
% 
% Se non se desexan estes cambios, chega con usar no
% pre'ambulo |\selectgalician*| (con asterisco) ou <<borralos>> con:
%\begin{verbatim}
% \let\layoutgalician\relax
%\end{verbatim}
% 
% \end{itemize}
%
% \section{Descripci'on}
%
% \subsection{Traduccións}
% 
% Certas ordes defínense para proporcionar traduccións
% ó galego dalgúns términos, tal e como se describe no cadro 1.
% 
% \begin{table}
% \center\small
% \caption{Traduccións}
% \vspace{1.5ex}
% \begin{tabular}{l@{\hspace{3em}}l}
% \toprule
% |\refname|        & Referencias\\
% |\abstractname|   & Resumo\\
% |\bibname|        & Bibliograf'ia\\
% |\chaptername|    & Cap'itulo\\
% |\appendixname|   & Ap'endice\\
% |\contentsname|   & 'Indice xeral\nm{a}\\
% |\listfigurename| & 'Indice de figuras\\
% |\listtablename|  & 'Indice de cadros\\
% |\indexname|      & 'Indice alfab'etico\\
% |\figurename|     & Figura\\
% |\tablename|      & Cadro\\
% |\partname|       & Parte\\
% |\enclname|       & Adxunto\\
% |\ccname|         & Copia a\\
% |\headtoname|     & A\\
% |\pagename|       & P'axina\\
% |\seename|        & v'exase\\
% |\alsoname|       & v'exase tam'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}
% 
%  Non existe para o índice unha terminolox'ia unificada. Tal vez
%  \emph{'Indice xeral} é o que m'ais se usa, as'i que a
%  iso me ateño salvo en |article|, onde se compón coma secci'on
%  e polo tanto resulta algo ostentoso.\footnote{\'O contrario que en
%  ingl'es, en galego o 'indice por antonomasia é o xeral.}
% 
%  Para o 'indice alfab'etico tense proposto \emph{'Indice de materias}
%  ou \emph{'Indice anal'itico}, aínda que estes 'indices non soamente
%  adoitan incluír materias, mais tamén nomes; \emph{'Indice alfab'etico}
%  é m'ais preciso.\footnote{\'E a usada en \DOT{300} as'i coma na meirande
%  parte dos libros que consultei ó azar nunha biblioteca. (J.B.)}
% 
%  En canto ós de cadros e figuras, tam'en é posible dicir
%  \emph{lista}, pero paréceme preferible \emph{'indice}, que
%  implica a correspondencia coas p'axinas.
% 
%  \emph{Table} debe traducirse por \emph{cadro}, xa que \emph{táboa}
%  é un \emph{falso amigo};\,\footnote{V'exanse as definicións
%  do \msc{DGII} e \DTL{67 ss.}} esa é a pr'actica tradicional.
%  (Por exemplo, <<cadro de estados medievais>> frente a <<táboa de logaritmos>>.)
%
%  As traducción escríbense con min'usculas, salvo a inicial. Evítase
%  o anglicismo de comenzar con mai'usculas os substantivos.\footnote{\DOT{197}.}
%
%  A orde |\today| dá a data actual. Con |\galiciandatedo| e |\galiciandatede|
%  óptase por \textit{do} (predeterminado) ou \textit{de}.
%
% \subsection{Abreviacións}
% 
%  (O que en \babel{} denomínase `shorthands'.) A lista completa
%  pódese atopar no cadro~2. Nos seguintes apartados daranse máis
%  detalles sobre algunhas delas.
%
% \begin{table}[!t]
% \center\small
% \caption{Abreviacións}
% \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\\
% |"i "I|          & "i "I\\
% |"a "A "o "O|    & Ordinais: 1"a, 1"A, 1"o, 1"O\\
% |"rr "RR|        & rr, pero -r cando se divide\\
% |"-|             & Coma |\-|, pero permite m'ais divisións\\
% |"=|             & Coma |-|, pero permite máis divisións\nm{b}\\
% |"~|             & Gui'on estil'istico\nm{c}\\
% |~- ~-- ~---|    & Coma |-|, |--| e |---|, pero sen divisi'on\\
% |""|             & Permite máis divisións antes e despois\nm{d}\\
% |"/|             & Unha barra algo m'ais baixa\\
% \verb+"|+        & Divide un logotipo\nm{e}\\
% |<< >>|          & << >>\\
% |"< ">|          & |\begin{quoting}| |\end{quoting}|\nm{f}\\
% |?` !`|          & ?` !`\nm{g}\\
% |"? "!|          & "? "! aliñados coa liña base\nm{h}
% \botrule
% \end{tabular}
%
% \vspace{1.5ex}
%
% \begin{minipage}{11cm}
% \footnotesize
% \nt{a} A forma |~n| debe considerarse en extinci'on.
% \nt{b} |"=| ven a ser o mesmo que |""-""|.
% \nt{c} Esta abreviaci'on ten un uso distinto noutras
% linguas. \nt{d} Coma en <<entrada/saída>>.
% \nt{e} Carece de uso en galego. \nt{f} V'exase sec.~2.7. 
% \nt{g} Non proporcionadas por este paquete, mais por cada tipo;
% figuran aqu'i coma simple recordatorio. \nt{h} 'Utiles en
% r'otulos en mai'usculas.
% \end{minipage}
% \end{table}
% 
% Para poder usar ap'ostrofos coma abreviacións de acentos
% é necesaria a opci'on |activeacute| en |\usepackage|.
% Pode cambiarse este comportamento coa orde |\gl@acuteactive|
% no arquivo de configuraci'on |galician.cfg|; nese caso os 
% ap'ostrofos actívanse sempre.
% 
% Os caracteres usados coma abreviacións compórtanse coma
% outras ordes de \TeX{} e polo tanto faise caso omiso
% dos espacios que poidan seguir: \verb*|' a| é o mesmo que |'a|.
% Eso tam'en implica que tras eses caracteres non pode vir unha
% chave de peche e que deber'a escribirse |{... '{}}| en lugar 
% de |{... '}|; en modo matem'atico non hai problema e |$x^{a'}$|
% ($x^{a'}$) é v'alido.
% 
% \begin{itemize}
%
% \item[$\diamond$]
% |\deactivatetilden|\\[1ex]
% 
% Esta orde desactiva as abreviacións |~n| e |~N| debido ós problemas
% que presentan. Pode usarse no arquivo de configuraci'on (v'exase
% m'ais abaixo).
% 
% % \item[$\diamond$]
% |\galiciandeactivate{<caracteres>}|\\[1ex]
% 
% Permite desactivar as abreviacións correspondentes ós caracteres dados.
% Para evitar entrar en conflicto con outras linguas, ó sair de |galician|
% reactívanse,\footnote{O punto para os decimais non é estrictamente
% unha abreviaci'on e non se reactiva.} polo que se se desexa que 
% persista cómpre engadi-la orde a |\shorthandsgalician| con |\addto|.
% A orde |\renewcommand\shorthandsgalician{}| é unha variante optimizada de
%\begin{verbatim}
% \addto\shorthandsgalician{\galiciandeactivate{.'"~<>}}
%\end{verbatim}
% e é o recomendado se se desea prescindir do mecanismo de abreviacións.
% \end{itemize}
%
% \subsection{Coma decimal}
%
% En \textsf{galician} tómase partido, coma en castelán, por separar
% a parte enteira e a parte decimal mediante unha coma. O punto é
% tradicional en inglés, non en galego, e ademáis chegouse a unha
% normalización internacional pola que os milleiros sepáranse por
% un espacio fino e os decimais con coma.
%
% Dado que \TeX\ usa a coma coma separador en intervalos ou expresións
% similares, o que engade un espacio fino, \textsf{galician} converte 
% todo punto en modo matem'atico nunha coma sempre que estea seguido
% dunha cifra, pero non notras 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$, mais\\
% |1.000|                  \> 1.000, pois non é modo matem'atico.
% \end{tabbing}\end{quote}
%
% As ordes |\decimalcomma| e |\decimalpoint| establecen se se usa
% unha coma, que é o valor predeterminado, ou un punto, mentras que
% |\galiciandecimal{<math>}| permite darlle unha definici'on
% arbitraria.\footnote{Internamente o mecanismo é o dunha abreviaci'on,
% e pódese desactivar coma as outras.}
%
% \subsection{Divisi'on de palabras}
%
% \textsf{Galician} comproba a codificaci'on no momento no que se
% emprega un acento: se a codificaci'on é |OT1| tómanse medidas para 
% facilitar a divisi'on, que pese a todo nunca ser'a perfecta, mentres 
% que con |T1| accédese directamente ó car'acter correspondente.
%
% Para matizar a divisi'on de palabras hai catro posibilidades, dúas
% delas co m'etodo de abreviacións:
% \begin{itemize}
% \item a orde |\-| é un gui'on opcional que non permite m'ais 
% divisións (coma en \TeX),
%
% \item |"-| é similar pero permite m'ais divisións,
%
% \item un |-| é un gui'on que non permite m'ais divisións nin
% antes nin despois (coma en \TeX), e
% 
% \item |"=| é o equivalente que s'i as permite,\footnote{Non
% é unha boa idea usar esta orde, pero en medidas moi curtas
% puede resultar necesario.}
%
% \end{itemize}
% Por exemplo (coas posibles divisións 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\-aperto| \> semi\hmk aperto\\
% |semi"-aperto| \> se\hmk mi\hmk aper\hmk to.\footnotemark
% \end{tabbing}\footnotetext{Xusto antes e despóis de
% {\ttfamily\string"\string-} e {\ttfamily\string"\string=}
% aplícanse os correspondentes valores de
% {\ttfamily\string\...hyphenmin}, o que implica que a
% divis'on semia\hmk perto non é posible.
% Este é un comportamento correcto.}
% \end{quote}
%
% Adem'ais hai abreviacións que evitan divisións: |~-|, que resulta
% 'util para expresar unha serie de n'umeros sen que o gui'on os
% divida (12~-14, |12~-14|), e |~---|, que é a forma que debe usarse
% para abrir incisos con raias, xa que do contrario pode haber unha
% divisi'on entre a raia de abrir e a palabra que lle sigue:
% \begin{quote}\small\begin{tabbing}
% |Os concertos ~---ou academias--- que organiz'ou...|
% \end{tabbing}\end{quote}
% Mentras que este gui'on evita toda posible divisi'on nos elementos
% que une, a raia (---) e a semirraia (--) permítenas nas palabras
% que a precedan ou sigan.
% 
% A abreviaci'on |"~| úsase cando se quere que o gui'on tam'en apareza
% ó comienzo da seguinte liña. Por exemplo:
% \begin{quote}\small\begin{tabbing}
% |infra"~vermello|  \quad \= in\hmk fra-ver\hmk mello, pero infra-\hmk-vermello.
% \end{tabbing}\end{quote}
%
% Outra abreviaci'on é |"rr| que sirve para o 'unico cambio de escritura do
% castelán en caso de haber divisi'on.\footnote{En galego non atopei un 
% pronunciamento ó respecto. A \msc{RAE} indica que ó a'nadir un prefixo 
% que reamta en vocal a unha palabra que comenza con \emph{r}, esta 'ultima debe 
% dobrarse a menos que se unan por un gui'on. Por exemplo:
% |extra"{}rradio| divídese en ex\hmk trarra\hmk dio, mais extra-\hmk radio.}
%
% \subsection{Ordinais}
% 
% As abreviaturas sempre levan punto, salvo algunhas nas que se
% substitúe por unha barra (e salvo as siglas e s'imbolos, naturalmente),
% que precede ás letras voladitas.\footnote{\DTL{196}. V'exase tam'en \DOT{222 e 227}.}
% Por ello, \textsf{galician} proporciona a orde |\sptext| que facilita a
% creaci'on destas abreviaturas. Por exemplo: |adm\sptext{'on}|, que dá
% adm\sptext{'on}. Hai catro abreviacións asociadas a ordinais:
% |"a|, |"A|, |"o| e |"O| que equivalen a |\sptext{a}|, etc.\footnote{Moitos
% tipos engaden un pequeno subliñado que debe evitarse, e polo tanto non se debe
% escribi-los ordinais con \textsf{inputenc}.}
%
% Para axustar o tamano o mellor posible, úsase o de 'indices en curso.
% Esto funciona ben salvo para tama'nos moi grandes ou moi pequenos, onde
% os resultados son meramente aceptables. 
%
% En Plain \TeX{} execútase a orde |\sptextfont| para a letra voladita,
% de xeito que |{\bf\let\sptextfont\bf 1"o}| dá o resultado correcto
% (|\mit| se é para cursiva). Para usar un tipo novo con |\sptext| hai
% que definir tam'en as variantes matem'aticas con |\newfam|.
% 
% \subsection{Funcións matem'aticas}
%
% En castelán, tradicionalmente formáronse as abreviacións
% do que en \TeX\ coñecense coma operadores a partir do nome castelán,
% o que implica a presencia do acento en l'im, m'ax, m'in, 'inf e m'od.
% Parece que isto e tamén o máis adecuado para o galego.
%
% Con |galician| pódense seguir varios criterios por medio das seguintes
% ordes:
% \begin{itemize}
% \item[$\diamond$] |\accentedoperators| |\unaccentedoperators|\\[1ex]
% Activa ou desactiva os acentos.
% Por omisi'on acent'uanse, coma por exemplo: $\lim_{x\to 0}(1/x)$
% (|$\lim_{x\to 0}(1/x)$|).
% 
% \item[$\diamond$] |\spacedoperators| |\unspacedoperators|\\[1ex]
% Activa ou desactiva o espacio entre "<arc"> e la funci'on. Por omisi'on
% non se espacia.
% \end{itemize}
% 
% O i sen punto tam'en é accesible directamente en modo matem'atico
% coa orde |\dotlessi|, de forma que se pode escribir |\acute{\dotlessi}|.
% Por exemplo, 
% |$V_{\mathbf{cr\acute{\dotlessi}t}}$| dá $V_{\mathbf{cr\acute{\dotlessi}t}}$.
%
% Tam'en engádense |\sen|, |\cosec|, |\arcsen|, |\tx|, |\arctx|, e |senh|,
% que dan as funcións respectivas. Ademáis |\sin|,\New{galician~4.3}
% |sinh| e |arcsin| producen os mesmos resultados que |\sen|, |\senh|
% e |\arcsen| respectivamente. Outras funcións trigonom'etricas
% atópanse almacenadas no par'ametro |\galicianoperators|,
% que inicialmente inclúe cotx e txh. Deste xeito pódense cambiar por
% outras e engadir máis, coma por exemplo:
%\begin{verbatim}
% \renewcommand{\galicianoperators}{cotan arc\,ctx tanh}
%\end{verbatim}
% (separadas con espacio). Cando se selecciona |galician| créanse
% ordes con eses nomes e que dan esas funcións (sempre con |\nolimits|).
% Adem'ais das letras sen acentuar acéptanse as ordes |\,| e |\acute|, que
% se pasan por alto para forma-lo nome. Por exemplo, |arc\,ctg| escribirase
% no documento coma |\arcctg|, |M\acute{a}x| coma |\Max| e |cr\acute{i}t|
% coma |\crit| (hai que usar |i| e non |\dotlessi|). A orde |\,| responde
% a |\|(|un|)|spacedoperators|, e |\acute| a |\|(|un|)|accentedoperators|.
% 
% |\renewcommand{\galicianoperators}| haberá de estar no pre'ambulo do documento,
% despois de |\sepackage[galician]{babel}| e antes de |\selectgalician| ou de 
% |\begin{document}|.
%
% \subsection{Entrecomiñados}
% 
% O entorno |quoting| entrecomiña un texto, engadindo comiñas de seguir ó
% comienzo de cada parágrafo ou no seu interior.\footnote{Pódese atopar unha
% detallada exposici'on das comiñas en \DTL{44 ss.} De alí tomouse alg'un exemplo.}
% Tam'en pódense empregrar as abreviacións |"<| e |">| que se limitan a chamar
% a |quoting|, que por ser entorno considera os seus cambios internos coma locais.
% (É dicir, |"< ... ">| implica |{"< ... ">}|.) As abreviacións |<<| e |>>|
% contin'uan dando sen m'ais os caracteres de comiñas de abrir e pechar.
% 
% Por exemplo:
%\begin{verbatim}
% "<Chámanse "<comiñas de seguir"> as que son de peche, pero colócanse
% ó comenzo de cada parágrafo cando se transcribe un texto
% entrecomiñado con m'ais dun par'agrafo.
% 
% No seu interior, coma de costume, úsanse as inglesas.">
%\end{verbatim}
% que ten por resultad:
% \begin{quotation}\small
% "<Chámanse "<comillas de seguir"> as que son de peche, pero colócanse
% ó comenzo de cada par'agrafo cando se transcribe un texto
% entrecomiñado con m'ais dun par'agrafo.
% 
% No seu interior, coma de costume, úsanse as inglesas.">
% \end{quotation}
% 
% Este entorno pódese redefinir. Por exemplo:
%\begin{verbatim}
% \renewenvironment{quoting}{\itshape}{}
%\end{verbatim}
% pero non implica un novo par'agrafo, xa que est'a pensado
% para ser usado tam'en no texto.
%
% En caso de incluír uns entornos |quoting| dentro doutros, modifícanse
% as comiñas dos niveis interiores, que tam'en engadense ás de seguir:
%\begin{verbatim}
% "<O di'alogo desenvolveuse desta forma:
% 
% "<---Eu no fun ---grit'ou Antonio.
% 
% ---Mais colaboraches ---asegur'ou Rafael">.
% 
% Mais al'i ningúen se aclarou.">
%\end{verbatim}
% 
% \begin{quotation}\small
% "<O di'alogo desenvolveuse desta forma:
% 
% "<---Eu no fun ---grit'ou Antonio.
% 
% ---Mais colaboraches ---asegur'ou Rafael">.
% 
% Mais al'i ningúen se aclarou.">
% \end{quotation}
%
% \begin{itemize}
% \item[$\diamond$]
% |\lquoti| |\rquoti| |\lquotii| |\rquotii| |\lquotiii| 
% |\rquotiii|\\[1ex]
% 
% Controlan as comiñas en |quoting|, segundo o nivel no que nos
% atopemos. |\lquoti| son as comiñas de abrir m'ais exteriores,
% |\lquotii| as de segundo nivel, etc., e o mesmo para as de pechar
% con |\rquoti|... Para as de seguir sempre se usan as de pechar.
% Os valores predefinidos est'an no cadro 3.
% \begin{table}
% \center\small
% \caption{Entrecomiñados}
% \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}}
% 
% As comiñas de seguir tam'en empréganse en di'alogos, incluso
% se non as hai de abrir e pechar. Coa axuda do seguinte entorno,
%\begin{verbatim}
% \newenvironment{dialog}
%   {\def\lquoti{}\begin{quoting}---\ignorespaces}
%   {\def\rquoti{}\end{quoting}}
%\end{verbatim}
% podemos obter
% \begin{quotation}\small
% \begin{dialog}%
% O di'alogo desenvolveuse deste xeito:
% 
% "<---Eu non fun ---grit'ou Antonio.
% 
% ---Mais colaboraches ---asegur'ou Rafael">.
%
% Mais al'i ninguén se aclarou.
% \end{dialog}
% \end{quotation}
%
% \item[$\diamond$]
% |\activatequoting \deactivatequoting|\\[1ex]
% 
% As incompatibilidades potenciais destas abreviacións son enormes.
% Por exemplo, en \textsf{ifthen} cancélanse as comparacións entre
% n'umeros;\,\footnote{E en |\string\ifnum|, etc. usado polos
% desenroladores nos paquetes.} tam'en resultan inoperantes |@>>>|
% e |@<<<| de \textsf{amstex}.\footnote{Aínda que neste caso cabe
% empregar os sin'onimos |@)))| e |@(((|.} Por iso, dase a posibilidade
% de cancelalas e reactivalas con estas ordes, aínda que se se
% est'a a usar con \textsf{xmltex} xa se desactivan por completo de
% modo autom'atico. O entorno |quoting| sempre permanece disponible.
% \footnote{Algúns tipos posúen as ligaduras |<{}<| e |>{}>| de
% forma interna para xenerar os caracteres de comiñas, polo que
% neles tamb'en podemos usalos siempre.}
%
% \end{itemize}
% 
% \subsection{Espaciado}
% 
% O espaciado en galego afástase relativamente pouco do ingl'es;
% Non obstante, o espacio tra-los signos de puntuaci'on debe 
% de ser o mesmo que o que hai entre palabras. Ou dito en
% t'erminos de \TeX, |\frenchspacing| est'a activo.
% 
% Tam'en noutros dous sitios hai diferencias. O primero son os
% puntos suspensivos, para os que se redefine |\dots| e |\cdots|,\New{galician 4.3}
% que os dan menos espaciados, e para |\dots| no texto engádese a
% continuación un espacio igual que o que seguiría a un punto.
% Por exemplo:
% \begin{quote}\small\begin{tabbing}
% |\dots non sei se canta\dots ou chora.|\quad \dots non sei se canta\dots ou chora.\\
% |$f(x_1,\dots,x_n,y_1,\ldots,y_m)$|\quad $f(x_1,\dots,x_n,y_1,\ldots,y_m)$\\
% |$1+2+\cdots+n$|\quad $1+2+\cdots+n$
% \end{tabbing}\end{quote}
% Tam'en poder'ianse escribir os tres puntos sen m'ais... , e na
% pr'actica non hai diferencia. |galician| realiza as modificacións
% a moi baixo nivel, para que sexan compatibles cos cambios que tamén
% introduce |amsmath| nestes comandos.
%
% O segundo sitio é un espacio fino antes do signo |\%| (que m'ais
% exactamente é |\,|, logo pódese <<recuperar>> co seu oposto |\!|,
% se |\%| no segue a unha cifra).
%
% \subsection{Pequenas e medianas versais}
%
% |\lsc| pódese empregar para letras en versalitas. Tamén existe
% |\msc|,\New{galician 4.3} que selecciona un tipo lixeiramente maior.
% Por exemplo:
% \begin{quote}\small\begin{tabbing}
% |\lsc{DOG}, \lsc{RenFe}| \quad \= No \lsc{DOG} publicouse que \lsc{ReNFe} deber'a...\\
% |\msc{DOG}, \msc{ReNFe}| \quad \= No \msc{DOG} publicouse que \msc{ReNFe} deber'a...
% \end{tabbing}\end{quote}
% Tam'en pode ser 'util para alguns usos dos n'umeros romanos:
% \begin{quote}\small\begin{tabbing}
% |s'eculo \msc{XVII}| \quad \= s'eculo \msc{XVII}\\
% |cap'itulo \msc{II}| \quad \= cap'itulo \msc{II}.
% \end{tabbing}\end{quote}
% 
% Para evitar que con un tipo que carece de versalitas acabe
% aparecendo (por substituci'on) un texto de min'usculas inténtase
% usar nestes casos as versais \emph{reais} dun tama'no menor.
% Queda simplemente aceptable, pero é mellor que nada. (\LaTeX{}
% tende a substituír versalitas por versalitas, pero hai
% excepcións, como coas negritas.)
%
% \subsection{Miscel'anea}
%
% \begin{itemize}
% \item[$\bullet$] Pódese escribir |\'i| para |\'{\i}|.
%
% \item[$\bullet$] Hai unha abreviaci'on adicional como utilidade
% tipogr'afica m'ais que especificamente galega. En certos
% tipos, coma Times, o extremo inferior da barra est'a na liña
% de base e expresións coma <<am/pm>> resultan pouco est'eticas.
% |"/| produce unha barra que, de ser necesario, báixase lexeiramente.
% Computer Modern ten unha barra ben dese'nada e non é posible
% ilustrar aqu'i este punto, pero en todo caso escribir'iase |am"/pm|.^^A
% \footnote{En \MEA{141} recórrese a unha soluci'on que é a 'unica
% sinxela en programas de maquetaci'on: usar un corpo menor. Pero
% con \TeX{} é moito m'ais doado automatiza-las tareas.}
%
% \end{itemize}
%
% \section{Selecci'on da lingua}
% 
% Por omisi'on, \babel{} deixa <<dormidas>> as linguas ata que se
% chega a |\begin{document}| co fin de evitar conflictos polas
% abreviacións; a cambio, prívase da posibilidade de usar as linguas
% no pre'ambulo en ordes coma |\savebox|, |\title|, |\newtheorem|, etc.
% 
% A orde |\selectgalician| permite activar |galician| coas súas
% extensións e abreviacións antes de |\begin{document}|.\footnote{^^A
% Algúns detalles, que apenas afectan a \texttt{galician}, seguen sen
% activarse ata o comenzo do documento.}
% Deste xeito, poder'iamos dicir
%\begin{verbatim}
% \documentclass{book}
% \usepackage[T1]{fontenc}
% \usepackage[galician]{babel}
% \usepackage[latin1]{inputenc}
% \usepackage[centerlast]{caption2}
% ... % M'ais paquetes
% 
% \selectgalician
% 
% \title{T'itulo}
% \author{Autor}
% \newcommand{\pste}{para"-psicoloxicamente}
% \newsavebox{\mybox}
% \savebox{\mybox}{m'ais cosas}
% ...   % M'ais definicións
%
% \begin{document}
%\end{verbatim}
%
% \section{Adaptaci'on}
% \subsection{Configuraci'on}
%
% Nas súas 'ultimas versions, \babel{} proporciona a posibilidade
% de cargar autom'aticamente un arquivo co mesmo nome que o
% principal, pero con extensi'on |.cfg|. \textsf{Galician}
% proporciona unhas poucas ordes para seren usadas neste arquivo:
% \begin{itemize}
% \item[$\diamond$] |\gl@activeacute|\\[1ex]
% Activa as abreviacións con ap'ostrofos, sen que sexa
% necesario incluír |activeacute| coma opci'on en |\usepackage|.
%
% \item[$\diamond$] |\gl@enumerate{<leveli>}|%
%      |{<levelii>}{<leveliii>}{<leveliv>}|\\[1ex] 
% Cambia os valores preestablecidos por |galician| para
% |enumerate|. \textit{leveln} consiste nunha letra, que
% indica qu'e formato ter'a o n'umero, seguida de cualquera
% texto. A letra ten que ser: |1| (ar'abigo), |a|
% (min'uscula \emph{cursiva}\,\footnote{A letra é cursiva
% mais non os signos que a poidan seguir. M'ais ben debera
% dicirse destacada, xa que se usa |\string\emph|. V'exase
% \DTL{11}.}), |A| (versal), |i| (romano \emph{versalita},
% con |\msc|), |I| (romano versal) ou finalmente |o| (ordinal\,
% \footnote{O normal é non engadir ning'un signo tras ordinal.}).
%
% Esta orde non est'a pensada para facer cambios elaborados, se
% non solamente para meros reaxustes. Os valores preestablecidos 
% equivalen a
%\begin{verbatim}
% \gl@enumerate{1.}{a)}{1)}{a$'$)}
%\end{verbatim}
%
% \item[$\diamond$] |\gl@itemize{<leveli>}|%
%      |{<levelii>}{<leveliii>}{<leveliv>}|\\[1ex] 
% O mesmo para |itemize|, s'olo que os argumentos úsanse
% de forma literal. Os valores orixinais de \LaTeX{} son
% similares a
%\begin{verbatim}
% \gl@itemize{\textbullet}{\normalfont\bfseries\textendash}
%    {\textasteriskcentered}{\textperiodcentered}
%\end{verbatim}
%
% \item[$\diamond$] |\gl@operators|\\[1ex]
% Todo o relativo a operadores cancélase con
%\begin{verbatim}
% \let\gl@operators\relax
%\end{verbatim}
% É boa idea incluílo se no se van usar, xa que aforra memoria.
%
% \end{itemize}
%
% Outros axustes 'utiles neste contexto son |\galicianoperators|,
% |\selectgalician| e |\deactivatequoting|.
%
%
% Recordemos que tódo-los cambios operados dende este arquivo
% restan compatibilidade ó documento, polo que se se distribúe
% conven adxuntarlo co entorno |filecontents|.
%
% \subsection{Outros cambios}
% 
% \begin{itemize}
% 
% \item A orde |\addto| permite
% cambiar algunha das convencións internas. Esto resulta
% interesante coas traduccións, xa que as formas proporcionadas
% poden non ser as desexadas. Para iso é necesario que
% |galician| non estea seleccionado. Por exemplo, para cambiar
% \emph{'Indice de figuras} por \emph{Lista de figuras}:
%\begin{verbatim}
% \addto\captionsgalician{%
%   \def\listfigurename{Lista de figuras}}
%\end{verbatim}
%
% \item Para voltar elimina-la sangr'ia tra-la secci'on:
%\begin{verbatim}
% \def\@afterindentfalse{\let\if@afterindent\iffalse}
% \@afterindentfalse
%\end{verbatim}
%
% \item Para que |\roman| proporcione n'umeros romanos en
% min'uscula, segundo a forma inglesa:
%\begin{verbatim}
% \def\@roman#1{\romannumeral #1};
%\end{verbatim}
% e para que emprege |\lsc| en troques de |\msc|: 
%\begin{verbatim}
% \def\gl@roman##1{\protect\gl@lsc{\romannumeral##1}}
%\end{verbatim}
%
% \item
% Os extras atópanse organizados en varios grupos: 
% |\textgalician|, |\mathgalician|, |\shorthandsgalician|
% e |\layoutgalician|. Poden cancelarse con:
%\begin{verbatim}
%  \renewcommand\textgalician{}
%\end{verbatim}
% 
% \end{itemize}
%
% \section{Formatos distintos a \LaTeXe}
% 
% O estilo |galician| funciona con outros formatos, aínda que con un
% subconxunto das funcións disponibles en \LaTeXe{}. Con Plain hai 
% que facer
%\begin{verbatim}
% \input galician.sty
%\end{verbatim}
% e con \LaTeX2.09, incluir |galician| entre as opcións de estilo.
% 
% Inclúense: traduccións, case todas as abreviacións, coma decimal,
% utilidades para a divisi'on de palabras, ordinais nunha versi'on
% simplificada (e non moi elegante), funcións matem'aticas,
% entrecomiñados en \LaTeX2.09, espaciado e |\'i|.
% A selecci'on da lingua é inmediata ó cargar o arquivo.
% 
% En cambio non est'an disponibles: entrecomiñados en Plain, 
% |\lsc|, |\msc| nin as adaptacións proporcionadas por |\layoutgalician|.
% 
% A partir desta versi'on, o arquivo de configuraci'on lese sempre,
% polo que aqueles que xa estean escritos espec'ificamante para \LaTeXe{}
% poden presentar problemas se se usan con outros formatos. Se as
% versións que se usan non son moi antigas, pódese comprobar o formato
% coa variable |\fmtname|, que vale |LaTeX2e| ou |plain|. Por exemplo,
%\begin{verbatim}
% \def\temp{LaTeX2e}
% \ifx\temp\fmtname
%   ...
% \fi
%\end{verbatim}
% 
% \section{Bibliograf'ias}
% 
% O arquivo |glbst.tex| que se xenera con \textsf{galician}
% serve para que a utilidade \textsf{custom-bib} traballe en
% conxunci'on con \babel. Define unha serie de ordes, que poden
% consultarse no propio arquivo, que se utilizan para as
% traduccións se se selecciona |babel| coma lingua ó xenerar un
% estilo bibliogr'afico. 
% 
% \section{Incompatibilidades con versións anteriores}
% 
% ^^A\begin{itemize}
% 
% O t'ermino correspondente a |\tablename| estaba traducido
% incorrectamente coma <<Táboa>>. Coma queira que <<táboa>> é a
% palabra con que pode aparecer no propio texto, ou ben pode
% haber un artigo feminino ante |\tablename|, pode reponerse o
% valor antigo con:
%\begin{verbatim}
% \addto\captionsgalician{%   
%   \def\tablename{Táboa}%
%   \def\listtablename{\'Indice de táboas}}
%\end{verbatim}
%
% ^^A\end{itemize}
%
% \section*{Referencias}
% \addcontentsline{toc}{section}{Referencias}
%
% \begingroup
% \small
% \leftskip1.5cm \parindent-1.5cm
%
% \makebox[1.5cm][l]{\msc{DGII}}\textit{Diccionario de galego},
% Ir Indo. Vigo, 2004.
%
% \makebox[1.5cm][l]{\msc{DOT}}Jos'e Mart'inez de Sousa,
%   \textit{Diccionario de ortograf'ia t'ecnica}, 
%   Germ'an S'anchez Ruip'erez/Pir'amide. Madrid, 1987.
%   (Biblioteca del libro.)
%
% \makebox[1.5cm][l]{\msc{DTL}}Jos'e Mart'inez de Sousa,
%   \textit{Diccionario de tipograf'ia y del libro}, 
%   Paraninfo. Madrid, 3"a ed., 1992.
%
% \makebox[1.5cm][l]{\msc{MEA}}Jos'e Mart'inez de Sousa,
%   \textit{Manual de edici'on y autoedici'on}, 
%   Pir'amide. Madrid 1994.
%
% \makebox[1.5cm][l]{\msc{OELG}}Xos'e Feix'o Cid,
%   \textit{Ortografía e estilo da lingua galega}, 
%   Pir'amide. Vigo, 2002.
%
% \leftskip0pt \parindent0pt \vspace{6pt}
%
% {\itshape
% Como normalmente o primeiro contacto con \TeX{} é por unha tesis,
% cito libros que est'an relacionados co tema ós que tiven acceso.
% Est'an por orde de preferencia; en  particular, os dous 'ultimos
% parécenme pouco recomendables. (J. B.)}
% 
% \parindent-1.5pc \leftskip1.5pc  \vspace{3pt}
%
%   Umberto Eco,
%   \textit{C'omo se hace una tesis}, Gedisa.
%   Barcelona 1982.
%
%   Antonia Rigo Arnavat e Gabriel Genesc\`a Due'nas,
%   \textit{C'omo presentar una tesis y trabajos de investigaci'on},
%   Eumo-Octaedro. Barcelona, 2002.
%
%   Prudenci Comes,
%   \textit{Gu'ia para la redacci'on y presentaci'on de trabajos
%   cient'ificos, informes t'ecnicos y tesinas}, 
%   Oikos-Tau. Barcelona, 1971.
%
%   Javier Lasso de la Vega,
%   \textit{C'omo se hace una tesis doctoral}, 
%   Fundacion Universitaria Espa~nola. Madrid, 1977.
%
%   Jos'e Romera Castillo e outros,
%   \textit{Manual de estilo}, 
%   Universidad Nacional de Educaci'on a Distancia. Madrid, 1996.
%
%   Restituto Sierra Bravo,
%   \textit{Tesis doctorales y trabajos de investigaci'on cient'ifica}, 
%   Paraninfo. Madrid, 1986.
%
% \parindent0pc \leftskip0pc \vspace{6pt}
%
% {\itshape
% Para outras cuestións tipogr'aficas, as referencias
% usadas son, entre outras:}
%
% \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, p'axs.~119~-125. 1984.
%
%   \textit{The Chicago Manual of Style}, University of Chicago
%   Press, 14"a~ed., esp.~p'axs.~333~-335. Chicago, 1993.
%
%   Jos'e Fern'andez Castillo,
%   \textit{Normas para correctores y compositores tip'ografos},
%   Espasa-Calpe. Madrid, 1959.
%
%   IRANOR [AENOR], Normas \msc{UNE} n'umeros 5010 (<<Signos 
%   matem'aticos>>), 5028 (<<S'imbolos 
%   geom'etricos>>) e 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}, Espasa-Calpe. Madrid, 1973.
%   
%   V.\ Mart'inez Sicluna,
%   \textit{Teor'ia y pr'actica de la tipograf'ia},
%   Gustavo Gili. Barcelona, 1945.
%
%   Jos'e Mart'inez de Sousa,
%   \textit{Diccionario de ortograf'ia de la lengua espa'nola},
%   Paraninfo. Madrid, 1996.
%
%   Juan Mart'inez Val, \textit{Tipograf'ia pr'actica},
%   Laberinto. Madrid, 2002.
%
%   Juan Jos'e Morato, \textit{Gu'ia pr'actica del compositor 
%   tipogr'afico}, Hernando, 2"a ed. Madrid, 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,
%   p'axs. 23-40. 1996; parte II, vol. 9, n"o 1, p'axs.~25~-44. 1997.
%
%   Jos'e Polo,
%   \textit{Ortograf'ia y ciencia del lenguaje},  Paraninfo. Madrid, 1974.
%
%   Pedro Valle,
%   \textit{C'omo corregir sin ofender}, Lumen. Buenos Aires, 1998.
%
%   Hugh C. Wolfe, <<S'imbolos, unidades y nomenclatura>>, 
%   \textit{Enciclopedia de F'isica}, t.~2, p'axs.~1423~-1451.
%    dir. Rita G. Lerner e George L. Trigg, Alianza. Madrid, 1987,
%
% \endgroup
%
% \end{userdtx}
% 
% \begin{userdrv}
%^^A  ======= Beginning of text as typeset by user.drv =========
%
% \GetFileInfo{galician.dtx}
%
% \section{This file}
%
% This file defines all the language-specific macros for the
% Galician language. The file galician.dtx was translated in
% January 2007 by Javier A. M\'ugica from spanish.dtx. It was 
% given the version number 4.3, based on the version for spanish.dtx
% at those times, that was 4.2b. The original author from
% v4.0 to 4.2b was Javier Bezos. Previous versions were written
% by Julio S\'anchez.

% I decided to make \emph{tabula rasa} of all |\changes|
% logs. Only changes from spanish 4.2b to galician 4.3 and thereafter
% are documented. The change history for the original spanish.dtx
% can be found in that file.
% 
% \section{The Galcian language}
%
% Custumization is made following mainly the books on the subject
% by Jos\'e Mart\'\i nez de Sousa and Xos\'e Feix\'o Cid.
% By typesetting |galician.dtx| directly you will get the full
% documentation (regrettably is in Galician only, but it is
% pretty long). References in this part refers to that document.
% There are several aditional features documented in the Galician
% 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:galician-quote-def}.
% Examples in subsection~3.4 are illustrative. Note that
% |"~| has a special meaning in \textsf{galician}
% 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).\\
% |"i|      & \"i (also uppercase).\\
% |"a|      & Ordinal numbers (also  |"A|, |"o|, |"O|).\\
% |"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{galician.ldf}}
% \label{tab:galician-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 Galicians ordinals and abbeviations with |\sptext|
% as, for instance, |1\sptext{o}|. 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 |\selectgalician| selects the |galician| language
% \emph{and} its shorthands. (Intended for the preamble.)
% 
% \item |\frenchspacing| is used.
% 
% \item |\dots| is redefined. It is now equal to typing tree points
% in a row (it preserves the space following).
% 
% \item There is a small space before |\%|.
% 
% \item |\msc| provides lowercase small caps. (See subsection~3.10.)
% \end{itemize}
% 
% Just in case |galician| is the main language, the group 
% |\layoutgalician| 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 Galician 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 |\selectgalician*| in the
% preamble.
% 
% Some additional commands are provided to be used in the
% |galician.cfg| file:
% \begin{itemize}
% \item With |\gl@activeacute| acute accents are always active,
% overriding the default \textsf{babel} behaviour.
% 
% \item |\gl@enumerate| sets the labels to be used by |enumerate|. The
% same applies to |\gl@itemize| and |itemize|.
% 
% \item |\gl@operators| stores the operator commands.
% All of them are canceled with
%\begin{verbatim}
% \let\gl@operators\relax
%\end{verbatim}
% \end{itemize}
% The commands |\deactivatequoting|, |\deactivatetilden| and
% |\selectgalician| may be used in this file, too.
% 
% A subset of these commands is provided for
% use in Plain \TeX{} (with |\input galician.sty|).
%
% \end{userdrv}
% 
%\StopEventually{}
%
%^^A ========== End of manual ===============
%
% \begin{userdtx}
% \section{The Code}
% \end{userdtx}
% 
% \begin{userdrv}
% \subsection{The Code}
% \end{userdrv}
% 
% \changes{galician~4.3}{07/01/22}{Reversed "<, "> and <<, >>.}
% \changes{galician~4.3}{07/01/22}{Removed the Spanish et sign.}
% \changes{galician~4.3}{07/01/26}{Removed the shorthand for \c{c}. It
% existed in medieval galician-portuguese, but that does not seem a
% reason to be included here.}
%
%    This file provides definition for both \LaTeXe{} and non
%    \LaTeXe{} formats.
%
%    Identify the |ldf| file.
%    
%    \begin{macrocode}
%<*code>
\ProvidesLanguage{galician.ldf}
       [2008/07/06 v4.3c Galician 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{galician} will 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.
%
%    \begin{macrocode}
\LdfInit{galician}\captionsgalician
\ifx\undefined\l@galician
  \@nopatterns{Galician}
  \adddialect\l@galician0
\fi
%    \end{macrocode}
%
%    We define some tools which will be used in that style file:
%    (1) we make sure that |~| is active, (2) |\gl@delayed| delays
%    the expansion of the code in conditionals (in fact, quite similar
%    to |\bbl@afterfi|).
%
%    \begin{macrocode}
\edef\gl@savedcatcodes{%
  \catcode`\noexpand\~=\the\catcode`\~
  \catcode`\noexpand\"=\the\catcode`\"}
\catcode`\~=\active
\catcode`\"=12
\long\def\gl@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}
\gl@delayed
\expandafter\ifx\csname documentclass\endcsname\relax\then
  \let\ifes@LaTeXe\iffalse
\else
  \let\ifes@LaTeXe\iftrue
\fi
\gl@delayed
\expandafter\ifx\csname newenvironment\endcsname\relax\then
  \let\ifes@plain\iftrue
\else
  \let\ifes@plain\iffalse
\fi
%    \end{macrocode}
%
% Translations for captions.
%
%    \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\listfigurename{\'Indice de figuras}%
  \def\listtablename{\'Indice de cadros}%
  \def\indexname{\'Indice alfab\'etico}%
  \def\figurename{Figura}%
  \def\tablename{Cadro}%
  \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}}
  
\expandafter\ifx\csname chapter\endcsname\relax
  \addto\captionsgalician{\def\contentsname{\'Indice}}
\else
  \addto\captionsgalician{\def\contentsname{\'Indice xeral}}
\fi
%    \end{macrocode}
%
%    And the date.
% \changes{galician~4.3}{07/01/21}{Set the default to \textit{do}}
%    \begin{macrocode}
\def\dategalician{%
 \def\today{\the\day~de \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 
      \ \ifnum\year>1999\gl@yearl\else de\fi~\the\year}}
\def\galiciandatedo{\def\gl@yearl{do}}
\def\galiciandatede{\def\gl@yearl{de}}
\galiciandatedo
%    \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. |\selectgalician| makes them active.
%
%    \begin{macrocode}
\def\selectgalician{%
  \def\selectgalician{%
    \def\selectgalician{%
      \PackageWarning{galician}{Extra \string\selectgalician ignored}}%
    \gl@select}}

\@onlypreamble\selectgalician

\def\gl@select{%
  \let\gl@select\@undefined
  \selectlanguage{galician}%
  \catcode`\"\active\catcode`\~=\active}
%    \end{macrocode}
%
%    Instead of joining all the extras directly in |\extrasgalician|,
%    we subdivide them in three further groups.
%    \begin{macrocode}
\def\extrasgalician{%
  \textgalician
  \mathgalician
  \ifx\shorthandsgalician\@empty
    \galiciandeactivate{."'~<>}%
    \languageshorthands{none}%
  \else
    \shorthandsgalician
  \fi}
\def\noextrasgalician{%
  \ifx\textgalician\@empty\else
    \notextgalician
  \fi
  \ifx\mathgalician\@empty\else
    \nomathgalician
  \fi
  \ifx\shorthandsgalician\@empty\else
    \noshorthandsgalician
  \fi
  \gl@reviveshorthands}
%    \end{macrocode}
%
%    And the first of these sub-groups is defined.
%
%    \begin{macrocode}
\addto\textgalician{%
  \babel@save\sptext
  \def\sptext{\protect\gl@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\gl@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\gl@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. |\msc| tries a slightly larger font.
%    Javier B. wrote: ``The \cs{selectfont} in \cs{gl@lsc} could
%    seem redundant, but it's not''. I cannot see how it can't be
%    redundant (it is the last thing executed by |\scshape|), but
%    I keep it.
%
%    \changes{galician~4.3}{07/00/26}{Added \cs{msc}}
%    \begin{macrocode}
\ifes@LaTeXe   %<<<<<<
  \addto\textgalician{%
    \babel@save\lsc
    \def\lsc{\protect\gl@lsc}
    \babel@save\msc
    \def\msc{\protect\gl@msc}}
        
        \def\gl@@msc{\expandafter\@tempdima\f@size pt \divide\@tempdima by 200 \multiply\@tempdima by 219 
                \edef\f@size{\strip@pt\@tempdima}\selectfont}
        \def\gl@msc{\let\gl@do@msc\gl@@msc\lsc}
        \let\gl@do@msc\relax

  \def\gl@lsc#1{%
    \leavevmode
    \hbox{\gl@do@msc\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{galician}{Replacing undefined sc font\MessageBreak
                                 shape by faked small caps}%
         \MakeUppercase{#1}%
       \else
         \MakeLowercase{#1}%
       \fi}\let\gl@do@msc\relax}
\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\ifgl@listquot

\ifes@plain\else %<<<<<<
  \csname newtoks\endcsname\gl@quottoks
  \csname newcount\endcsname\gl@quotdepth

        \ifx\quoting\c@undefined\def\next{\let\next\relax\newenvironment}
        \else\def\next{\PackageInfo{galician}{Redefining quoting}\let\next\relax\renewenvironment}
        \fi
  \next{quoting}
   {\leavevmode
    \advance\gl@quotdepth1
    \csname lquot\romannumeral\gl@quotdepth\endcsname%
    \ifnum\gl@quotdepth=\@ne
      \gl@listquotfalse
      \let\gl@quotpar\everypar
      \let\everypar\gl@quottoks
      \everypar\expandafter{\the\gl@quotpar}%
      \gl@quotpar{\the\everypar
        \ifgl@listquot\global\gl@listquotfalse\else\gl@quotcont\fi}%
    \fi
    \toks@\expandafter{\gl@quotcont}%
    \edef\gl@quotcont{\the\toks@
       \expandafter\noexpand
       \csname rquot\romannumeral\gl@quotdepth\endcsname}}
   {\csname rquot\romannumeral\gl@quotdepth\endcsname}

  \def\lquoti{\guillemotleft{}}
  \def\rquoti{\guillemotright{}}
  \def\lquotii{``}
  \def\rquotii{''}
  \def\lquotiii{`}
  \def\rquotiii{'}

  \let\gl@quotcont\@empty
%    \end{macrocode}
%
%    If there is a margin par inside quoting, we don't add the
%    quotes. |\gl@listqout| stores the quotes to be used before
%    item labels; otherwise they could appear after the labels.
%
%    \begin{macrocode}  
  \addto\@marginparreset{\let\gl@quotcont\@empty}

  \def\gl@listquot{%
    \csname rquot\romannumeral\gl@quotdepth\endcsname
    \global\gl@listquottrue}
\fi            %<<<<<<
%    \end{macrocode}
%
%    Now, the |\frenchspacing|, followed by |\...dots| and |\%|
%                Instead of redefining |\ldots| and |\cdots|, we redefine |\ldotp|
%    and |\cdotp|, so that this is compatible with amsmath.
%    In LaTeX we also redefine |\textellipsis|, and for plain or
%    other we redefine |\dots|.
%
% \changes{galician~4.3}{07/01/27}{\cs{...} is removed and instead
% \cs{dots} and \cs{dots} are changed, by redefining \cs{ldotc},
% \cs{dotc} and \cs{textellipsis} or \cs{dots}}
%    \begin{macrocode}
\addto\textgalician{\bbl@frenchspacing}
\addto\notextgalician{\bbl@nonfrenchspacing}

\mathchardef\gl@cdot="0201
\ifes@LaTeXe            %<<<<<<
\addto\textgalician{%
  \babel@save\textellipsis
  \babel@save\ldotp
  \babel@save\cdotp%
        \def\textellipsis{\hbox{...}\spacefactor\sfcode`.{} }%
        \mathchardef\ldotp="013A%
        \mathchardef\cdotp="0201%
}
\else            %<<<<<<
\addto\textgalician{%
  \babel@save\dots
  \babel@save\ldotp
  \babel@save\cdotp
  \mathchardef\ldotp="013A%
        \mathchardef\cdotp="0201%
        \def\dots{\ifmmode\ldots\else...\spacefactor\sfcode`.{} \fi}%
}
\fi            %<<<<<<

\ifes@LaTeXe   %<<<<<<  
  \addto\textgalician{%
    \let\percentsign\%%
    \babel@save\%%
    \def\%{\unskip\,\percentsign{}}}
\else
  \addto\textgalician{%
    \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.
%
%    \begin{macrocode}
\addto\mathgalician{%
  \babel@save\dotlessi
  \def\dotlessi{\protect\gl@dotlessi}}

\let\nomathgalician\relax %% Unused, but called

\ifes@LaTeXe   %<<<<<< 
  \def\gl@texti{\i}
  \addto\@uclclist{\dotlessi\gl@texti}
\fi            %<<<<<<

\ifes@LaTeXe   %<<<<<<
  \def\gl@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\gl@dotlessi{%
    \ifmmode
      \mathchar"7010
    \else
      \i
    \fi}
\fi            %<<<<<<
%    \end{macrocode}
%
%   The switches for accents and spaces in math.
%
% \changes{galician~4.3}{07/01/21}{Set the default to \cs{unspacedoperators}}
%    \begin{macrocode}
\def\accentedoperators{%
  \def\gl@op@ac##1{\acute{##1}}%
  \def\gl@op@i{\acute{\dotlessi}}}
\def\unaccentedoperators{%
  \def\gl@op@ac##1{##1}%
  \def\gl@op@i{i}}
\accentedoperators

\def\spacedoperators{\let\gl@op@sp\,}
\def\unspacedoperators{\let\gl@op@sp\@empty}
\unspacedoperators
%    \end{macrocode}
%
%    The operators are stored in |\gl@operators|, which in turn is
%    included in the math group. Since |\operator@font| is
%    defined in \LaTeXe{} only, we need to define them in the plain variant.
%    
% \changes{galician~4.3}{07/01/21}{\cs{sin}, \cs{arcsin} and \cs{sinh}
% are set to produce the same as \cs{sen}, \cs{arcsen} and \cs{senh}}
% \changes{galician~4.3}{07/01/27}{cosec and senh moved from
% \cs{galicianoperators} to the main group}
%
%    \begin{macrocode}
\addto\mathgalician{%
  \gl@operators}

\ifes@LaTeXe\else %<<<<<<
  \let\operator@font\rm
  \def\@empty{}
\fi            %<<<<<<

\def\gl@operators{%
  \babel@save\lim        \def\lim{\mathop{\operator@font l\protect\gl@op@i m}}%
  \babel@save\limsup  \def\limsup{\mathop{\operator@font l\gl@op@i m\,sup}}%
  \babel@save\liminf  \def\liminf{\mathop{\operator@font l\gl@op@i m\,inf}}%
  \babel@save\max     \def\max{\mathop{\operator@font m\gl@op@ac ax}}%
  \babel@save\inf     \def\inf{\mathop{\operator@font \protect\gl@op@i nf}}%
  \babel@save\min     \def\min{\mathop{\operator@font m\protect\gl@op@i n}}%
  \babel@save\bmod
  \def\bmod{%
    \nonscript\mskip-\medmuskip\mkern5mu%
    \mathbin{\operator@font m\gl@op@ac od}\penalty900\mkern5mu%
    \nonscript\mskip-\medmuskip}%
  \babel@save\pmod
  \def\pmod##1{%
    \allowbreak\mkern18mu({\operator@font m\gl@op@ac od}\,\,##1)}%
  \def\gl@a##1 {%
    \gl@delayed
    \if^##1^\then  %  is it empty? do nothing and continue
      \gl@a
    \else
      \gl@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\gl@b{\expandafter\noexpand\csname##1\endcsname}%
          \def\,{\noexpand\gl@op@sp}%
          \def\acute####1{%
            \if i####1%
              \noexpand\gl@op@i
            \else
              \noexpand\gl@op@ac####1%
            \fi}%
          \edef\gl@a{\endgroup
            \noexpand\babel@save\expandafter\noexpand\gl@b
            \def\expandafter\noexpand\gl@b{%
                    \mathop{\noexpand\operator@font##1}\nolimits}}%
          \gl@a % It restores itself
        \gl@a
      \fi
    \fi}%
  \let\gl@b\galicianoperators
  \addto\gl@b{ }%
  \expandafter\gl@a\gl@b sen tx cosec arc\,sen arc\,cos arc\,tx senh & %\, will be set to \gl@op@sp
  %
  \babel@save\sin    \let\sin\sen
        \babel@save\arcsin \let\arcsin\arcsen
        \babel@save\sinh   \let\sinh\senh
}

\def\galicianoperators{cotx txh}
%    \end{macrocode}
%
%    Now comes the text shorthands. They are grouped in
%    |\shorthandsgalician| 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.
%    
%    \begin{macrocode}
\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'{\i}}

\def\gl@set@shorthand#1{%
  \expandafter\edef\csname gl@savecat\string#1\endcsname
     {\the\catcode`#1}%
  \initiate@active@char{#1}%
  \catcode`#1=\csname gl@savecat\string#1\endcsname\relax
  \expandafter\let\csname gl@math\string#1\expandafter\endcsname
    \csname normal@char\string#1\endcsname}

\def\gl@use@shorthand{%
  \gl@delayed
  \ifx\thepage\relax\then
    \string
  \else{%
    \gl@delayed
    \ifx\protect\@unexpandable@protect\then
      \noexpand
    \else
      \gl@use@sh
    \fi}%
  \fi}

\def\gl@text@sh#1{\csname active@char\string#1\endcsname}
\def\gl@math@sh#1{\csname gl@math\string#1\endcsname}

\def\gl@use@sh{%
  \gl@delayed
  \if@safe@actives\then
    \string
  \else{%
    \gl@delayed
    \ifmmode\then
      \gl@math@sh
    \else
      \gl@text@sh
    \fi}%
  \fi}

\gdef\gl@activate#1{%
  \begingroup
    \lccode`\~=`#1
    \lowercase{%
  \endgroup
  \def~{\gl@use@shorthand~}}}

\def\galiciandeactivate#1{%
  \@tfor\@tempa:=#1\do{\expandafter\gl@spdeactivate\@tempa}}

\def\gl@spdeactivate#1{%
  \if.#1%
    \mathcode`\.=\gl@period@code
  \else
    \begingroup
      \lccode`\~=`#1
      \lowercase{%
    \endgroup
    \expandafter\let\expandafter~%
      \csname normal@char\string#1\endcsname}%
    \catcode`#1\csname gl@savecat\string#1\endcsname\relax
  \fi}

\def\gl@reviveshorthands{%
  \gl@restore{"}\gl@restore{~}%
  \gl@restore{<}\gl@restore{>}%
  \gl@quoting}

\def\gl@restore#1{%
  \catcode`#1=\active
  \begingroup
    \lccode`\~=`#1
    \lowercase{%
  \endgroup
  \bbl@deactivate{~}}}
%    \end{macrocode}
%
%    But \textsf{galician} allows two category codes for |'|,
%    so both should be taken into account in \cs{bbl@pr@m@s}.
%    
%    \begin{macrocode}
\begingroup
\catcode`\'=12
\lccode`~=`' \lccode`'=`'
\lowercase{%
\gdef\bbl@pr@m@s{%
  \gl@delayed
  \ifx~\@let@token\then
    \pr@@@s
  \else
    {\gl@delayed
     \ifx'\@let@token\then
       \pr@@@s
     \else
       {\gl@delayed
        \ifx^\@let@token\then
          \pr@@@t
        \else
          \egroup
        \fi}%
     \fi}%
  \fi}}
\endgroup
%    \end{macrocode}
%
%    \begin{macrocode}
\expandafter\ifx\csname @tabacckludge\endcsname\relax
  \let\gl@tak\a
\else
  \let\gl@tak\@tabacckludge
\fi

\ifes@LaTeXe   %<<<<<<
  \def\@tabacckludge#1{\expandafter\gl@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.
%    \begin{macrocode}
\ifes@LaTeXe   %<<<<<<
  \def\gl@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\gl@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.
%
%    \begin{macrocode}
\addto\shorthandsgalician{\languageshorthands{galician}}
\let\noshorthandsgalician\relax
%    \end{macrocode}
%
%    First, decimal comma.
%
%    \begin{macrocode}
\def\galiciandecimal#1{\def\gl@decimal{{#1}}}
\def\decimalcomma{\galiciandecimal{,}}
\def\decimalpoint{\galiciandecimal{.}}
\decimalcomma

\gl@set@shorthand{.}

\@namedef{gl@math\string.}{%
  \@ifnextchar\egroup
    {\mathchar\gl@period@code\relax}%
    {\gl@text@sh.}}

\declare@shorthand{system}{.}{\mathchar\gl@period@code\relax}
%    \end{macrocode}
%
%    \begin{macrocode}
\addto\shorthandsgalician{%
  \mathchardef\gl@period@code\the\mathcode`\.%
  \babel@savevariable{\mathcode`\.}%
  \mathcode`\.="8000 %
  \gl@activate{.}}

\AtBeginDocument{%
  \catcode`\.=12
  \if@filesw
    \immediate\write\@mainaux{%
    \string\catcode`\string\.=12}%
  \fi}

\declare@shorthand{galician}{.1}{\gl@decimal1}
\declare@shorthand{galician}{.2}{\gl@decimal2}
\declare@shorthand{galician}{.3}{\gl@decimal3}
\declare@shorthand{galician}{.4}{\gl@decimal4}
\declare@shorthand{galician}{.5}{\gl@decimal5}
\declare@shorthand{galician}{.6}{\gl@decimal6}
\declare@shorthand{galician}{.7}{\gl@decimal7}
\declare@shorthand{galician}{.8}{\gl@decimal8}
\declare@shorthand{galician}{.9}{\gl@decimal9}
\declare@shorthand{galician}{.0}{\gl@decimal0}
%    \end{macrocode}
%
%     Now accents and tools
%
%    \begin{macrocode}
\gl@set@shorthand{"}
\def\gl@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\shorthandsgalician{%
    \gl@activate{"}%
    \gl@activate{~}%
    \babel@save\bbl@umlauta
    \let\bbl@umlauta\gl@umlaut
    \expandafter\babel@save\csname OT1\string\~\endcsname
    \expandafter\def\csname OT1\string\~\endcsname{\gl@accent\~{126}}%
    \expandafter\babel@save\csname OT1\string\'\endcsname
    \expandafter\def\csname OT1\string\'\endcsname{\gl@accent\'{19}}}
\else          %<<<<<<
  \addto\shorthandsgalician{%
    \gl@activate{"}%
    \gl@activate{~}%
    \babel@save\bbl@umlauta
    \let\bbl@umlauta\gl@umlaut
    \babel@save\~%
    \def\~{\gl@accent\~{126}}%
    \babel@save\'%
    \def\'#1{\if#1i\gl@accent\'{19}\i\else\gl@accent\'{19}{#1}\fi}}
\fi            %<<<<<<
%    \end{macrocode}
% \changes{galician~4.3}{07/01/22}{Removed the shorthands "er and "ER,
% they don't exist in galician.}
%    \begin{macrocode}
\declare@shorthand{galician}{"a}{\protect\gl@sptext{a}}
\declare@shorthand{galician}{"A}{\protect\gl@sptext{A}}
\declare@shorthand{galician}{"o}{\protect\gl@sptext{o}}
\declare@shorthand{galician}{"O}{\protect\gl@sptext{O}}

\declare@shorthand{galician}{"u}{\"u}
\declare@shorthand{galician}{"U}{\"U}
\declare@shorthand{galician}{"i}{\"i}
\declare@shorthand{galician}{"I}{\"I}

\declare@shorthand{galician}{"<}{\begin{quoting}}
\declare@shorthand{galician}{">}{\end{quoting}}
\declare@shorthand{galician}{"-}{\bbl@allowhyphens\-\bbl@allowhyphens}
\declare@shorthand{galician}{"=}%
  {\bbl@allowhyphens\char\hyphenchar\font\hskip\z@skip}
\declare@shorthand{galician}{"~}
  {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
       {\char\hyphenchar\font}{\char\hyphenchar\font}\bbl@allowhyphens}
\declare@shorthand{galician}{"r}
  {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
       {}{r}\bbl@allowhyphens}
\declare@shorthand{galician}{"R}
  {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
       {}{R}\bbl@allowhyphens}
\declare@shorthand{galician}{""}{\hskip\z@skip}
\declare@shorthand{galician}{"/}
  {\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{galician}{"?}
  {\setbox\z@\hbox{?`}%
   \leavevmode\raise\dp\z@\box\z@}
\declare@shorthand{galician}{"!}
  {\setbox\z@\hbox{!`}%
   \leavevmode\raise\dp\z@\box\z@}

\gl@set@shorthand{~}
\declare@shorthand{galician}{~n}{\~n}
\declare@shorthand{galician}{~N}{\~N}
\declare@shorthand{galician}{~-}{%
  \leavevmode
  \bgroup
  \let\@sptoken\gl@dashes  % This assignation changes the
  \@ifnextchar-%             \@ifnextchar behaviour
    {\gl@dashes}%
    {\hbox{\char\hyphenchar\font}\egroup}}
\def\gl@dashes-{%
  \@ifnextchar-%
    {\bbl@allowhyphens\hbox{---}\bbl@allowhyphens\egroup\@gobble}%
    {\bbl@allowhyphens\hbox{--}\bbl@allowhyphens\egroup}}

\def\deactivatetilden{%
  \expandafter\let\csname galician@sh@\string~@n@\endcsname\relax
  \expandafter\let\csname galician@sh@\string~@N@\endcsname\relax}
%    \end{macrocode}
%
%    The shorthands for |quoting|.
%
%    \begin{macrocode}
\expandafter\ifx\csname XML@catcodes\endcsname\relax
  \addto\gl@select{%
    \catcode`\<\active\catcode`\>=\active
    \gl@quoting}

  \gl@set@shorthand{<}
  \gl@set@shorthand{>}

  \declare@shorthand{system}{<}{\csname normal@char\string<\endcsname}
  \declare@shorthand{system}{>}{\csname normal@char\string>\endcsname}

  \addto\shorthandsgalician{%
    \gl@activate{<}%
    \gl@activate{>}}
%    \end{macrocode}
%
%    \begin{macrocode}
  \ifes@LaTeXe   %<<<<<<
    \AtBeginDocument{%
      \gl@quoting
      \if@filesw
        \immediate\write\@mainaux{\string\gl@quoting}%
      \fi}%
  \fi            %<<<<<<

  \def\activatequoting{%
    \catcode`>=\active \catcode`<=\active
    \let\gl@quoting\activatequoting}
  \def\deactivatequoting{%
    \catcode`>=12 \catcode`<=12
    \let\gl@quoting\deactivatequoting}

  \declare@shorthand{galician}{<<}{\guillemotleft{}}
  \declare@shorthand{galician}{>>}{\guillemotright{}}
\fi

\let\gl@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.
%    
%    \begin{macrocode}
\def\gl@activeacute{%
  \gl@set@shorthand{'}%
  \addto\shorthandsgalician{\gl@activate{'}}%
  \addto\gl@reviveshorthands{\gl@restore{'}}%
  \addto\gl@select{\catcode`'=\active}%
  \declare@shorthand{galician}{'a}{\@tabacckludge'a}%
  \declare@shorthand{galician}{'A}{\@tabacckludge'A}%
  \declare@shorthand{galician}{'e}{\@tabacckludge'e}%
  \declare@shorthand{galician}{'E}{\@tabacckludge'E}%
  \declare@shorthand{galician}{'i}{\@tabacckludge'i}%
  \declare@shorthand{galician}{'I}{\@tabacckludge'I}%
  \declare@shorthand{galician}{'o}{\@tabacckludge'o}%
  \declare@shorthand{galician}{'O}{\@tabacckludge'O}%
  \declare@shorthand{galician}{'u}{\@tabacckludge'u}%
  \declare@shorthand{galician}{'U}{\@tabacckludge'U}%
  \declare@shorthand{galician}{'n}{\~n}%
  \declare@shorthand{galician}{'N}{\~N}%
  \declare@shorthand{galician}{''}{\textquotedblright}%
  \let\gl@activeacute\relax}

\ifes@LaTeXe   %<<<<<<
  \@ifpackagewith{babel}{activeacute}{\gl@activeacute}{}
\else          %<<<<<<
  \gl@activeacute
\fi            %<<<<<<%
%    \end{macrocode}
%
%    And the customization. By default these macros only
%    store the values and do nothing.
%
%    \begin{macrocode}
\def\gl@enumerate#1#2#3#4{%
  \def\gl@enum{{#1}{#2}{#3}{#4}}}

\def\gl@itemize#1#2#3#4{%
  \def\gl@item{{#1}{#2}{#3}{#4}}}
%    \end{macrocode}
%    
%    The part formerly in the |.lld| file comes here. It performs
%    layout adaptation of \LaTeX{} to ``orthodox'' Galician rules.
%    \begin{macrocode}
\ifes@LaTeXe   %<<<<<<

\gl@enumerate{1.}{a)}{1)}{a$'$}
\def\galiciandashitems{\gl@itemize{---}{---}{---}{---}}
\def\galiciansymbitems{%
  \gl@itemize
    {\leavevmode\hbox to 1.2ex
      {\hss\vrule height .9ex width .7ex depth -.2ex\hss}}%
    {\textbullet}%
    {$\m@th\circ$}%
    {$\m@th\diamond$}}
\def\galiciansignitems{%
  \gl@itemize
    {\textbullet}%
    {$\m@th\circ$}%
    {$\m@th\diamond$}%
    {$\m@th\triangleright$}}
\galiciansymbitems

\def\gl@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\gl@sptext{o}}%
  \fi\fi\fi\fi\fi\fi
  \toks@\expandafter{\csname theenum#1\endcsname}
  \expandafter\edef\csname labelenum#1\endcsname
     {\noexpand\gl@listquot\the\toks@#3}}

\addto\layoutgalician{%
  \def\gl@enumerate##1##2##3##4{%
    \gl@enumdef{i}##1\@empty\@empty\@@
    \gl@enumdef{ii}##2\@empty\@empty\@@
    \gl@enumdef{iii}##3\@empty\@empty\@@
    \gl@enumdef{iv}##4\@empty\@empty\@@}%
  \def\gl@itemize##1##2##3##4{%
    \def\labelitemi{\gl@listquot##1}%
    \def\labelitemii{\gl@listquot##2}%
    \def\labelitemiii{\gl@listquot##3}%
    \def\labelitemiv{\gl@listquot##4}}%
  \def\p@enumii{\theenumi}%
  \def\p@enumiii{\theenumi\theenumii}%
  \def\p@enumiv{\p@enumiii\theenumiii}%
  \expandafter\gl@enumerate\gl@enum
  \expandafter\gl@itemize\gl@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
     l\or m\or n\or \~n\or o\or p\or q\or r\or s\or t\or u\or v\or
     x\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
     L\or M\or N\or \~N\or O\or P\or Q\or R\or S\or T\or U\or V\or
     X\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\gl@roman{\number##1}}%
  \def\gl@roman##1{\protect\gl@msc{\romannumeral##1}}%
  \def\glromanindex##1##2{##1{\protect\gl@msc{##2}}}}
%    \end{macrocode}
%    
%    We need to execute the following code when babel has been
%    run, in order to see if |galician| is the main language.
%    
%    \begin{macrocode}
\AtEndOfPackage{%
  \let\gl@activeacute\@undefined
  \def\bbl@tempa{galician}%
  \ifx\bbl@main@language\bbl@tempa
    \AtBeginDocument{\layoutgalician}%
    \addto\gl@select{%
      \@ifstar{\let\layoutgalician\relax}%
              {\layoutgalician\let\layoutgalician\relax}}%
  \fi
  \selectgalician}

\fi            %<<<<<<
%    \end{macrocode}
%    
%    After restoring the catcode of |~| and setting the minimal
%    values for hyphenation, the |.ldf| is finished.
%    
%    \begin{macrocode}
\gl@savedcatcodes

\providehyphenmins{\CurrentOption}{\tw@\tw@}

\ifes@LaTeXe   %<<<<<<
  \ldf@finish{galician}
\else          %<<<<<<
  \gl@select
  \ldf@finish{galician}
  \csname activatequoting\endcsname
\fi            %<<<<<<

%</code>
%    \end{macrocode}
%    That's all in the main file. Now the file with
%    \textsf{custom-bib} macros.
%
%    \begin{macrocode}
%<*bblbst>
\def\bbland{e}
\def\bbleditors{directores}     \def\bbleds{dirs.\@}
\def\bbleditor{director}        \def\bbled{dir.\@}
\def\bbledby{dirixido por}
\def\bbledition{edici\'on}      \def\bbledn{ed.\@}
\def\bbletal{e outros}
\def\bblvolume{volumen}       \def\bblvol{vol.\@}
\def\bblof{de}
\def\bblnumber{n\'umero}        \def\bblno{n\sptext{o}}
\def\bblin{en} 
\def\bblpages{p\'axinas}        \def\bblpp{p\'axs.\@}
\def\bblpage{p\'axina}           \def\bblp{p\'ax.\@}
\def\bblchapter{cap\'itulo}     \def\bblchap{cap.\@}
\def\bbltechreport{informe t\'ecnico}
\def\bbltechrep{inf.\@ t\'ec.\@}
\def\bblmthesis{proxecto de fin de carreira}
\def\bblphdthesis{tesis doutoral}
\def\bblfirst {primeira}        \def\bblfirsto {1\sptext{a}}
\def\bblsecond{segunda}         \def\bblsecondo{2\sptext{a}}
\def\bblthird {terceira}        \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{xaneiro}  \def\bblfeb{febreiro}  \def\bblmar{marzo}
\def\bblapr{abril}  \def\bblmay{maio}     \def\bbljun{xu\~no}
\def\bbljul{xullo}  \def\bblaug{agosto}   \def\bblsep{setembro}
\def\bbloct{outubro}\def\bblnov{novembro}\def\bbldec{decembro}
%</bblbst>
%    \end{macrocode}
%
%    The |galician| option writes a macro in the page field of
%    \textit{MakeIndex} in entries with medium caps number, and they
%    are rejected. This program is a preprocessor which moves this
%    macro to the entry field.
%
%    \begin{macrocode}
%<*indexgl>
\makeatletter

\newcount\gl@converted
\newcount\gl@processed

\def\gl@encap{`\|}
\def\gl@openrange{`\(}
\def\gl@closerange{`\)}

\def\gl@split@file#1.#2\@@{#1}
\def\gl@split@ext#1.#2\@@{#2}

\typein[\answer]{^^JArchivo que convertir^^J%
   (extension por omision .idx):}
   
\@expandtwoargs\in@{.}{\answer}
\ifin@
  \edef\gl@input@file{\expandafter\gl@split@file\answer\@@}
  \edef\gl@input@ext{\expandafter\gl@split@ext\answer\@@}
\else
  \edef\gl@input@file{\answer}
  \def\gl@input@ext{idx}
\fi

\typein[\answer]{^^JArquivo de destino^^J%
   (arquivo por omision: \gl@input@file.eix,^^J%
    extension por omision .eix):}
\ifx\answer\@empty
  \edef\gl@output{\gl@input@file.eix}
\else
  \@expandtwoargs\in@{.}{\answer}
  \ifin@
     \edef\gl@output{\answer}
  \else
     \edef\gl@output{\answer.eix}
  \fi
\fi

\typein[\answer]{%
 ^^J?Usouse algun esquema especial de controles^^J%
 de MakeIndex para encap, open_range ou 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\gl@encap{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
  \typein[\answer]{^^JCaracter para 'open_range'^^J%
    (\string( por omision)}
  \ifx\answer\@empty\else
    \edef\gl@openrange{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
  \typein[\answer]{^^JCaracter para 'close_range'^^J%
    (\string) por omision)}
  \ifx\answer\@empty\else
    \edef\gl@closerange{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
\fi
   
\newwrite\gl@indexfile
\immediate\openout\gl@indexfile=\gl@output

\newif\ifgl@encapsulated

\def\gl@roman#1{\romannumeral#1 }
\edef\gl@slash{\expandafter\@gobble\string\\}

\def\indexentry{%
  \begingroup
  \@sanitize
  \gl@indexentry}
  
\begingroup

\catcode`\|=12 \lccode`\|=\gl@encap\relax
\catcode`\(=12 \lccode`\(=\gl@openrange\relax
\catcode`\)=12 \lccode`\)=\gl@closerange\relax

\lowercase{
\gdef\gl@indexentry#1{%
  \endgroup
  \advance\gl@processed\@ne
  \gl@encapsulatedfalse
  \gl@bar@idx#1|\@@
  \gl@idxentry}%
}

\lowercase{
\gdef\gl@idxentry#1{%
  \in@{\gl@roman}{#1}%
  \ifin@
    \advance\gl@converted\@ne
    \immediate\write\gl@indexfile{%
      \string\indexentry{\gl@b|\ifgl@encapsulated\gl@p\fi glromanindex%
        {\ifx\gl@a\@empty\else\gl@slash\gl@a\fi}}{#1}}%
  \else
    \immediate\write\gl@indexfile{%
      \string\indexentry{\gl@b\ifgl@encapsulated|\gl@p\gl@a\fi}{#1}}%
  \fi}
}

\lowercase{
\gdef\gl@bar@idx#1|#2\@@{%
  \def\gl@b{#1}\def\gl@a{#2}%
  \ifx\gl@a\@empty\else\gl@encapsulatedtrue\gl@bar@eat#2\fi}
}

\lowercase{
\gdef\gl@bar@eat#1#2|{\def\gl@p{#1}\def\gl@a{#2}%
  \edef\gl@t{(}\ifx\gl@t\gl@p
  \else\edef\gl@t{)}\ifx\gl@t\gl@p
  \else
    \edef\gl@a{\gl@p\gl@a}\let\gl@p\@empty%
  \fi\fi}
}

\endgroup

\input \gl@input@file.\gl@input@ext

\immediate\closeout\gl@indexfile

\typeout{*****************}
\typeout{procesouse: \gl@input@file.\gl@input@ext }
\typeout{Li'nas lidas: \the\gl@processed}
\typeout{Li'nas convertidas: \the\gl@converted}
\typeout{Resultado en: \gl@output}
\ifnum\gl@converted>\z@
  \typeout{Xenere o 'indice a partir deste arquivo}
\else
  \typeout{Non se realizou ning'un tipo de conversi'on}
  \typeout{P'odese xenerar o arquivo directamente^^J%
           de \gl@input@file.\gl@input@ext}
\fi
\typeout{*****************}
\@@end
%</indexgl>
%    \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
