summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/babel-contrib/galician
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/babel-contrib/galician
Initial commit
Diffstat (limited to 'macros/latex/contrib/babel-contrib/galician')
-rw-r--r--macros/latex/contrib/babel-contrib/galician/galician.dtx2437
-rw-r--r--macros/latex/contrib/babel-contrib/galician/galician.ins151
-rw-r--r--macros/latex/contrib/babel-contrib/galician/galician.pdfbin0 -> 442011 bytes
3 files changed, 2588 insertions, 0 deletions
diff --git a/macros/latex/contrib/babel-contrib/galician/galician.dtx b/macros/latex/contrib/babel-contrib/galician/galician.dtx
new file mode 100644
index 0000000000..3e7e5c4d99
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/galician/galician.dtx
@@ -0,0 +1,2437 @@
+% \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
diff --git a/macros/latex/contrib/babel-contrib/galician/galician.ins b/macros/latex/contrib/babel-contrib/galician/galician.ins
new file mode 100644
index 0000000000..215b447ea0
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/galician/galician.ins
@@ -0,0 +1,151 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 1989-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 LaTeX base distribution is
+%% given in the file `manifest.bbl. See also `legal.bbl' for additional
+%% information.
+%%
+%% The list of derived (unpacked) files belonging to the distribution
+%% and covered by LPPL is defined by the unpacking scripts (with
+%% extension .ins) which are part of the distribution.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{galician.ins}
+\def\filedate{2007/01/29}
+\input docstrip.tex
+
+{\ifx\generate\undefined
+ \Msg{**********************************************}
+ \Msg{*}
+ \Msg{* This installation requires docstrip}
+ \Msg{* version 2.3c or later.}
+ \Msg{*}
+ \Msg{* An older version of docstrip has been input}
+ \Msg{*}
+ \Msg{**********************************************}
+ \errhelp{Move or rename old docstrip.tex.}
+ \errmessage{Old docstrip in input path}
+ \batchmode
+ \csname @@end\endcsname
+\fi}
+
+\declarepreamble\mainpreamble
+This is a generated file.
+
+Copyright 1989-2008 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) of the Babel system.
+---------------------------------------------------------
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is Johannes Braams.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+The list of derived (unpacked) files belonging to the distribution
+and covered by LPPL is defined by the unpacking scripts (with
+extension .ins) which are part of the distribution.
+\endpreamble
+
+\declarepreamble\fdpreamble
+This is a generated file.
+
+Copyright 1989-2008 Johannes L. Braams and any individual authors
+listed elsewhere in this file. All rights reserved.
+
+This file was generated from file(s) of the Babel system.
+---------------------------------------------------------
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is Johannes Braams.
+
+This file may only be distributed together with a copy of the Babel
+system. You may however distribute the Babel system without
+such generated files.
+
+The list of all files belonging to the Babel distribution is
+given in the file `manifest.bbl'. See also `legal.bbl for additional
+information.
+
+In particular, permission is granted to customize the declarations in
+this file to serve the needs of your installation.
+
+However, NO PERMISSION is granted to distribute a modified version
+of this file under its original name.
+
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/generic/babel}
+
+\keepsilent
+
+\usepreamble\mainpreamble
+\generate{\file{galician.ldf}{\from{galician.dtx}{code}}%
+ \file{glbst.tex}{\from{galician.dtx}{bblbst}}%
+ \file{glromidx.tex}{\from{galician.dtx}{indexgl}}}
+\usepreamble\fdpreamble
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.def, *.fd, *.ldf, *.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* '.dtx' and `.fdd' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/macros/latex/contrib/babel-contrib/galician/galician.pdf b/macros/latex/contrib/babel-contrib/galician/galician.pdf
new file mode 100644
index 0000000000..a00971a0a7
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/galician/galician.pdf
Binary files differ