% \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
%
% \ProvidesFile{spanish.dtx}
%       [2011/10/06 v5.0k Spanish support from the babel system] 
%\iffalse
%% File `spanish.dtx'
%% Babel package for LaTeX version 2e
%% Copyright (C) 1989 - 2011
%%           by Johannes Braams, TeXniek
%
%% Spanish Language Definition File
%% Copyright (C) 1997 - 2011
%%        Javier Bezos (www.tex-tipografia.com)
%%     and
%%        CervanTeX (www.cervantex.es)
%
%% Please report errors to: Javier Bezos (preferably)
%%                          www.tex-tipografia.com
%%                          J.L. Braams
%%                          www.latex-project.org
%
%    This file is part of the babel system, it provides the source
%    code for the Spanish language definition file.
%    The original version of this file was written by Javier Bezos.
%    The latest release is available on CTAN:/language/spanish/
% \fi
%
% \iffalse
%<*filedriver>
\let\ooverb\verb
\documentclass[spanish,a4paper]{ltxdoc}
\let\verb\ooverb
\usepackage{babel}
\usepackage{hyperref}

\let\meta\emph

\usepackage{pslatex,mathptmx,color}
\usepackage[cp1252]{inputenc}
\usepackage[T1]{fontenc}
\newcommand\act[1]{%
 \\%
 \makebox[1.5pc][l]{\textcolor{green}{$\surd$}}%
 \textsf{#1}\ignorespaces}
\newcommand\deact[1]{%
 \\%
 \makebox[1.5pc][l]{\textcolor{red}{$\times$}}%
 \texttt{#1}\ignorespaces}
\newcommand\txt{\makebox[1.5pc][l]{\textcolor{blue}{$\Rightarrow$}}\ignorespaces}
\newcommand\con{\makebox[1.5pc][l]{\textcolor{magenta}{$\star$}}\ignorespaces}
\newcommand\alw{%
 \\%
 \makebox[1.5pc][l]{\textcolor{green}{$\surd$}}%
 Se define siempre, sin depender de un grupo.}
\newcommand\opp{\qquad Opción de paquete}

\newcommand*\babel{\textsf{babel}}
\newcommand*\file[1]{\texttt{#1}}

\setlength{\arrayrulewidth}{2\arrayrulewidth}
\newcommand\toprule[1]{\cline{1-#1}\\[-2ex]}
\newcommand\botrule[1]{\\[.6ex]\cline{1-#1}}
\newcommand\hmk{$\string|$}

\newenvironment{decl}[1][]%
 {\par\small\addvspace{4.5ex plus 1ex}%
  \vskip-\parskip
  \ifx\relax#1\relax
   \def\@decl@date{}%
  \else
   \def\@decl@date{\NEWfeature{#1}}%
  \fi
  \noindent
  \begin{tabular}{|l|}\hline\ignorespaces}%
 {\\\hline\end{tabular}\nobreak\@decl@date\par\nobreak
  \vspace{2.3ex}\vskip-\parskip}

\newcommand\New[1]{%
 \leavevmode\marginpar{\raggedleft\sffamily Nuevo en #1}}

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

\makeatletter
 \renewcommand\@biblabel{}
\makeatother

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

\raggedright
\setlength{\parindent}{0em}
\setlength{\parskip}{3pt}

\addtolength{\oddsidemargin}{-4pc}
\addtolength{\textwidth}{7pc}

\OnlyDescription
\begin{document}
  \DocInput{spanish.dtx}
\end{document}
%</filedriver>
%\fi
%
% \begingroup
% \ifx\langdeffile\undefined
%
%^^A ======= Beginning of text as typeset by spanish.dtx =========
%
%
% \title{Estilo \textsf{spanish}\\
%  para el sistema \babel.\footnote{Este
%  archivo está actualmente en la versión
%  5.0k con fecha 6 de octubre del 2011. ^^A@#
%  Esta copia del manual se compuso el~\today.}}
%
% \author{Javier Bezos\footnote{Por favor, envíen comentarios y
% sugerencias en http://www.tex-tipografia.com/spanish.html.  Han
% colaborado de una u otra forma muchas personas, a las cuales
% agradezco sus comentarios y sugerencias; en particular, han sido muy
% activos Juan Luis Varona y José Luis Rivera.  Para más información
% sobre los criterios seguidos, véase la referencia: Javier Bezos,
% \textit{Tipografía española con \TeX.} Para información sobre
% actualizaciones: http://www.cervantex.es/}}
%
% \date{6 de octubre del 2011} ^^A@#
%
% \maketitle
% 
% {\small\tableofcontents}
%
% \section*{Símbolos empleados}
%
% \begin{itemize}
% \item[\textcolor{blue}{$\Rightarrow$}] Macros para 
% ser usadas en el texto (generan texto o lo estructuran).
% \item[\textcolor{magenta}{$\star$}] Macros de 
% configuración y preferencias.
% \item[\textcolor{green}{$\surd$}] Grupo que 
% activa la orden.
% \item[\textcolor{red}{$\times$}] Opciones de 
% paquete que anulan la orden. En redonda van las destinadas 
% específicamente a anular ese punto, y en cursiva las que además
% anulan otros aspectos del estilo.
% \end{itemize}
%
% \section{Uso de \textsf{spanish} para babel}
%
% El estilo \textsf{spanish} para babel adapta una serie de elementos
% de los documentos de \LaTeX\ al castellano, tanto en las
% traducciones como en la tipografía.  Para usarlo, basta con dar
% la opción \textsf{spanish} al cargar babel: \begin{verbatim}
% \usepackage[spanish]{babel} \end{verbatim}
%
% Esto es todo lo que hace falta para conseguir que el documento tenga
% un aspecto español. En caso de estar en México, véase, además, el
% apartado \ref{paises} (<<Opciones por países>>):\footnote{En próximas
% versiones se añadirán más países.}
%\begin{verbatim}
%\usepackage[spanish,mexico]{babel}
%\end{verbatim}
%
% El estilo \textsf{spanish} se puede cargar junto con otras lenguas (véase el 
% manual de babel). Si \textsf{spanish} es la última de las lenguas cargadas,
% entonces se considera la lengua principal y se hacen una serie de
% ajustes tipográficos adicionales. En particular, se modifican
% órdenes y entornos como:
%\begin{center}
%\begin{tabular}{lll}
%  |enumerate| &  |\roman|    &  |\section|\\
%  |itemize|   &  |\fnsymbol| &  |\subsection|\\
%  |\%|        &  |\alph|     &  |\subsubsection|\\
%                  &  |\Alph|     & \\
%\end{tabular}
%\end{center}
%
% El estilo está pensado para que sea muy configurable.  Para ello, se
% proporcionan una serie de opciones de paquete, que en caso de
% emplearse deben ir \textit{después} de \textsf{spanish}.  Por
% ejemplo:
% \begin{verbatim}
% \usepackage[french,spanish,es-noindentfirst]{babel} \end{verbatim}
% carga los estilos para el francés y el español, esta última como
% lengua principal; además, evita que \textsf{spanish} sangre el
% primer párrafo tras un título.  Otras opciones se pueden ajustar por
% medio de macros, en particular aquellas que se puede desear cambiar
% en medio del documento (por ejemplo, el formato de la fecha).
%
% Los cambios están organizados en una serie de grupos: 
% \textsf{captions, date, text, math} y \textsf{shorthands}.
% Los tres ultimos corresponden a lo que en babel sería normalmente
% \textsf{extras}.
%
% \section{\textsf{spanish} como lengua principal}
% 
% Si la lengua principal es \textsf{spanish}, se introducen una serie de
% cambios en el momento de cargar la lengua para adaptar varios
% elementos a los usos tipográficos españoles.  Estos cambios
% funcionan con las clases estándar "+--con otras tal vez alguno de
% ellos no tenga efecto--- y persisten durante todo el documento.
% Ninguno de ellos es necesario para componer el documento, aunque
% naturalmente el resultado será distinto.
%
% \subsection{Listas}
%
% \begin{decl} \txt |\begin{enumerate} ... \end{enumerate}|%
% \deact{es-nolists, es-noenumerate, \textit{es-nolayout, es-minimal,
% es-sloppy}} \end{decl}
%
% Usa la siguiente secuencia:\\
% \quad 1.\\
% \qquad \emph{a})\\
% \quad\qquad 1)\\
% \qquad\qquad \emph{a$'$})
%
% \begin{decl} \txt |\begin{itemize} ... \end{itemize}|%
% \deact{es-nolists, es-noitemize, \textit{es-nolayout, es-minimal,
% es-sloppy}} \end{decl}
%
% Usa la siguiente secuencia:\\
% \quad\leavevmode\hbox to 1.2ex
%     {\hss\vrule height .95ex width .8ex depth -.15ex\hss}\\
% \qquad\textbullet\\
% \quad\qquad $\circ$\\
% \qquad\qquad $\diamond$
%
% \begin{decl}
% \con  |\spanishdashitems    \spanishsignitems|
% \end{decl}
%
% Dos órdenes  para cambiar a otros estilos en
% |itemize|: rayas en todos los niveles y \textbullet{} $\circ$
% $\diamond$ $\triangleright$, respectivamente.
%
% \begin{decl}
% \con  |es-nolists|\opp
% \end{decl}
%
% Desactiva los cambios en las listas (aunque  |\es@enumerate| y 
%  |\es@itemize| siguen disponibles).
%
% \subsection{Contadores}
% 
% \begin{decl}
% \txt |\alph    \Alph|\deact{\textit{es-nolayout, es-sloppy}}
% \end{decl}
%
% Incluyen la eñe.
%
% \begin{decl}
% \txt  |\fnsymbol|\deact{\textit{es-nolayout, es-sloppy}}
% \end{decl}
%
% Se emplean uno, dos, tres... asteriscos (*, **, ***, etc.),
% en lugar de la sucesión angloamericana de cruces, barras,
% etc.\footnote{\DOT{162}.}
%
% \begin{decl}
% \txt  |\roman|\deact{es-ucroman, es-lcroman, \textit{es-nolayout, es-minimal, es-sloppy}}
% \end{decl}
%
% Como en castellano no se usan números romanos en minúscula,
% |\roman| se redefine para que los dé en
% versalitas.\footnote{\DTL{197}.} La opción de paquete
%  |es-minimal| los desactiva con  |es-ucroman|, y |es-sloppy|
% con  |es-lcroman|.

% \begin{decl}
% \con  |es-ucroman|\opp
% \end{decl}
%
% Opción de paquete adicional, que pasa todos los romanos a versales,
% en caso de que no se quiera la versalita o por incompatibilidad con
% algún paquete que use de forma indebida  |\roman|.\footnote{En
% el momento de escribir esto, como mínimo son: \textsf{dramatist,
% epiolmec, flashcards, lipsum, ntheorem, ntheorem-hyper,
% texmate.} Otros paquetes como \textsf{hyperref, easy} y \textsf{exam} 
% ya han sido corregidos.}
%
% \begin{decl}
% \con  |es-lcroman|\opp
% \end{decl}
%
% Como último recurso, de haber problemas con el valor predeterminado
% o con  |es-ucroman|, con esta opción de paquete puede dejarse la
% definición de \LaTeX, aunque en español los romanos en minúscula
% sean una falta ortográfica.
%
% \begin{decl}
% \con  |es-preindex|\opp
% \end{decl}
%
% \textit{MakeIndex} no puede entender la forma en que |\roman|
% escribe el número de página, por lo que elimina las líneas
% afectadas.  Por ello el archivo |.idx| ha de ser convertido antes de
% procesarlo con \textit{MakeIndex}.  Con este paquete se proporciona
% la utilidad |romanidx.sty| que se encarga de ello.  Simplemente se
% compone ese archivo con \LaTeX{} y a continuación se responde a las
% preguntas que se formulan; el archivo resultante, es decir, el que
% hay que procesar con \textit{MakeIndex,} tiene la extensión
% \texttt{eix}.  Este proceso no es necesario si no se introdujo
% ninguna entrada de índice en páginas numeradas con |\roman| (lo
% cual será lo más normal).  Si un símbolo propio de
% \emph{MakeIndex} generara problemas, debe encerrarse entre llaves:
% \verb={"|}=.
%
% Con la opción de paquete  |es-preindex| se llama desde el
% documento |romanidx.sty|, de forma que no es necesaria su ejecución
% aparte. Tampoco pide ningún dato, sino que ha de darse en el 
% documento principal con la siguiente orden.
%
% \begin{decl}
% \con  |\spanishindexchars|\marg{encap}\marg{open\_range}\marg{close\_range}
% \end{decl}
%
% De usarse |es-preindex| con un estilo de índice que no tiene los
% valores predeterminados de estos tres caracteres especiales, hay que
% darlos con esta orden (es decir, por omisión es
% \verb+\spanishindexchars{|}{(}{)}+).
%
% \begin{decl}
% \con  |\spanishscroman    \spanishlcroman    \spanishucroman|
% \end{decl}
%
% Finalmente, tres macros permiten cambios temporales en el
% documento de  |\roman| a versalitas, minúsculas y mayúsculas,
% respectivamente.
%
% \subsection{Otros}
%
% \begin{decl}
% \txt  |\guillemotleft    \guillemotright|\deact{\textit{es-nolayout, es-sloppy}}
% \end{decl}
%
% Las comillas latinas para |OT1| son menos angulosas y se generan
% con unas puntas de flecha de |lasy|. En T1 no hay cambios.
%
% \begin{decl}
% \txt  |\section|, |\subsection|, etc., 
% |\tableofcontents|\deact{es-nosectiondot, es-noindentfirst, \textit{es-nolayout, 
% es-mininal, es-sloppy}}
% \end{decl}
%
% Los números en los títulos están seguidos de un punto 
% tanto en el texto como en el índice. Además,
% el primer párrafo tras el título no elimina la sangría.
% 
% \begin{decl}
% \con  |es-nolayout|\opp
% \end{decl}
% 
% Si no se desea ninguno de estos cambios, basta con usar esta opción 
% de paquete.
%
% \section{Traducciones}
%
% \subsection{Nombres}
% 
% \begin{decl}
% \txt  |\refname|, |\tablename|, |\contentsname|, etc.\\
% \con  |\spanishrefname|, |\spanishtablename|, |\spanishcontentsname|, etc.
% \act{captions}
% \end{decl}
%
%    Establecen las traducciones al castellano de algunos términos,
%    tal y como se describe en el cuadro 1.  Para cambiar el texto
%    de ellas, conviene redefinir la forma que empieza con
%     |\spanish...|, ya que, al contrario que las órdenes
%    |\refname|, |\abstractname|, etc., se pueden redefinir cuando
%    se desee y entran en acción al momento y de forma permanente, sin
%    necesidad de |\addto|.
% 
% \begin{table}
% \center\small
% \newcommand\name[2]{%
% \texttt{\textbackslash#1name}&%
% \texttt{\textbackslash spanish#1name}&}
% \caption{Traducciones}
% \vspace{1.5ex}
% \begin{tabular}{l@{\hspace{3em}}l@{\hspace{3em}}l}
% \toprule3
% \name{ref}        & Referencias\\
% \name{abstract}   & Resumen\\
% \name{bib}        & Bibliografía\\
% \name{chapter}    & Capítulo\\
% \name{appendix}   & Apéndice\\
% \name{contents}   & índice general\nm{a}\\
% \name{listfigure} & índice de figuras\\
% \name{listtable}  & índice de cuadros\\
% \name{index}      & índice alfabético\\
% \name{figure}     & Figura\\
% \name{table}      & Cuadro\\
% \name{part}       & Parte\\
% \name{encl}       & Adjunto\\
% \name{cc}         & Copia a\\
% \name{headto}     & A\\
% \name{page}       & página\\
% \name{see}        & véase\\
% \name{also}       & véase también\\
% \name{proof}     & Demostración
% \botrule3
% \end{tabular}
%
% \vspace{1.5ex}
%
% \begin{minipage}{10cm}\footnotesize
% \nt{a} Pero sólo <<índice>> en \textsf{article}.
% \end{minipage}
% \end{table}
% 
% \begin{decl}
% \con  |es-uppernames|\opp
% \end{decl}
%
% Aunque sea un anglicismo,\footnote{\DOT{197}.} con esta opción de
% paquete los sustantivos tienen mayúscula inicial.
%
% \begin{decl}
% \con  |es-tabla|\opp
% \end{decl}
%
% En caso de que todos los cuadros sean tablas, esta opción permite
% cambiar \textit{cuadro} por \textit{tabla} (en cierto modo,
% \textit{cuadro} es a \textit{tabla} lo que \texttt{table} es a
% \texttt{tabular}).
%
% \subsection{Fechas}
%
% \begin{decl}
% \txt  |\today    \Today|
% \act{date}
% \end{decl}
%
%    Fecha  actual, en la forma \textit{1 de enero de 
%    2004.} Con  |\Today| el mes va en mayúscula.
%
% \begin{decl}
% \con  |\spanishdatedel    \spanishdatede|
% \end{decl}
%
%    Con la primera se cambia el formato para que a partir del 2000 se
%    emplee \textit{del} y no \textit{de} (recomendado).  La segunda
%    hace justo lo contrario (predeterminado).
%
% \begin{decl}
% \con  |\spanishreverseddate|
% \end{decl}
%
%   Cambia el formato de  |\today| a la forma
%   \textit{enero 1 del 2004.} Con  |\Today| el mes va en 
%   mayúscula.
%
% \section{Abreviaciones (\textit{shorthands})}
% 
%    La lista completa se puede encontrar en el cuadro 2.  En los
%    siguientes apartados se darán más detalles sobre algunas de
%    ellas.
%
% \begin{table}[!t]
% \center\small
% \caption{Abreviaciones}
% \vspace{1.5ex}
% \begin{tabular}{l@{\hspace{3em}}l@{\hspace{3em}}l}
% \toprule2
% |á é í ó ú| & á é í ó ú\\
% |á é í ó ú| & á é í ó ú\\
% |ñ ñ|          & ñ ñ\nm{a}\\
% |"u "U|          & "u "U\\
% |"i "I|          & "i "I\\
% |"a "A "o "O|    & Ordinales: 1"a, 1"A, 1"o, 1"O\\
% |"er "ER|        & Ordinales: 1"er, 1"ER\\
% |"c "C|          & "c "C\\
% |"rr "RR|        & rr, pero -r cuando se divide\\
% |"y|             & El antiguo signo para <<y>>\\
% |"-|             & Como |\-|, pero permite más divisiones\\
% |"=|             & Como |-|, pero permite mas divisiones\nm{b}\\
% |"~|             & Guión estilístico\nm{c}\\
% |"+ "+- "+--|    & Como |-|, |--| y |---|, pero sin división\\
% |~- ~-- ~---|    & Lo mismo que el anterior.\\
% |""|             & Permite mas divisiones antes y después\nm{d}\\
% |"/|             & Una barra algo más baja\\
% \verb+"|+        & Divide un logotipo\nm{e}\\
% |"< ">|          & "< ">\\
% |"` "'|          & |\begin{quoting}| |\end{quoting}|\nm{f}\\
% |<< >>|          & Lo mismo que el anterior.\\
% |?` !`|          & ?` !`\nm{g}\\
%|"? "!|           & "? "! alineados con la linea base\nm{h}
% \botrule2
% \end{tabular}
%
% \vspace{1.5ex}
%
% \begin{minipage}{11cm}
% \footnotesize
% \nt{a} La forma |~n| no está activada por omisión a partir de 
% la versión 5.
% \nt{b} |"=| viene a ser lo mismo que |""-""|.
% \nt{c} Esta abreviación tiene un uso distinto
% en otras lenguas de babel.
% \nt{d} Como en <<entrada/salida>>.
% \nt{e} Carece de uso en castellano.
% \nt{f} Véase sec.~2.7. 
% \nt{g} No proporcionadas por este paquete, sino por cada tipo;
% figuran aquí como simple recordatorio.
% \nt{h} útiles en rótulos en mayúsculas.
% \end{minipage}
% \end{table}
%
% Los caracteres usados como abreviaciones se comportan
% como otras órdenes de \TeX{} y por tanto se hace caso
% omiso de los espacios que le puedan seguir: \verb*|' a| es lo mismo
% que |á|. Eso también implica que tras esos caracteres no
% puede ir una llave de cierre y que deberá escribirse
% |{... '{}}| en lugar de |{... '}|; en modo matemático no hay
% ningún problema y |$x^{a'}$| ($x^{a'}$) es válido.
%
% \begin{decl}
% \con  |activeacute|\opp
% \end{decl}
%
% Para poder usar apóstrofos como abreviaciones de acentos es
% necesaria esta opción en |\usepackage|.  Puede cambiarse este
% comportamiento con |\es@acuteactive| en el archivo de
% configuración |spanish.cfg|; en ese caso los apóstrofos se activan
% siempre.
%
% \begin{decl}
% \con  |es-tilden|\opp
% \end{decl}
% 
% Esta orden activa las abreviaciones |~n| y |~N| por compatibilidad
% con versiones anteriores de \textsf{spanish} (y siempre que no se
% empleado también |es-notilde|). En la versión 5 no están
% activadas de forma predeterminada.
% 
% \begin{decl}
% \con  |\spanishdeactivate|\marg{caracteres}
% \end{decl}
% 
% Permite desactivar las abreviaciones correspondientes a los
% caracteres dados. Para evitar entrar en conflicto con otras lenguas,
% al salir de \textsf{spanish} se reactivan,\footnote{El punto para
% los decimales no es estrictamente una abreviación y no se
% reactiva.} por lo que si se desea que 
% persistan hay que añadir la orden a |\shorthandsspanish| con 
%|\addto|. La orden |\renewcommand\shorthandsspanish{}| es una 
% variante optimizada de
%\begin{verbatim}
% \addto\shorthandsspanish{\spanishdeactivate{.'"~<>}}
%\end{verbatim}
%
% \begin{decl}
% \con  |es-noshorthands|\opp
% \end{decl}
%
% No activa ninguna abreviación.
% 
% \subsection{Coma decimal}
%
% \begin{decl}
% \txt  |.|\textit{número}\act{shorthands}\deact{es-nodecimaldot, 
% \textit{es-noshorthands, es-minimal, es-sloppy}}
% \end{decl}
%
% En \textsf{spanish}, el punto en matemáticas sirve como marca decimal
% genérica que puede representarse como coma o punto; funciona
% por tanto como marcado lógico del signo para decimales. Por
% omisión, se siguen las normas internacionales ISO y la legislación
% de diversos países (como de España y México) de emplear la coma.
% Ya que \TeX\ usa la coma como separador en intervalos o expresiones 
% similares, lo que añade un espacio fino, \textsf{spanish}
% interpreta todo punto en modo matemático de esta forma siempre
% que esté seguido de una cifra, pero no en otras circunstancias:
% \begin{quote}\small\begin{tabbing}
% |$1\,234.567\,890$|     \quad \=  $1\,234.567\,890$\\
% |$f(1,2)=12.34.$|        \> $f(1,2)=12.34.$\\
% |$1{.}000$|              \> $1{.}000$, pero\\
% |1.000|                  \> 1.000, pues no es modo matemático.
% \end{tabbing}\end{quote}
%
%
% \begin{decl}
% \con  |\decimalcomma    \decimalpoint    \spanishdecimal|\marg{math}
% \end{decl}
%
% Las dos primeras establecen si se usa una coma (predeterminado)
% o un punto, mientras que |\spanishdecimal|\marg{math}
% permite darle una definición arbitraria.
%
% \begin{decl}
% \con  |es-nodecimaldot|\opp
% \end{decl}
%
% Cancela el mecanismo del punto decimal.
%
% \subsection{División de palabras}
%
% \textsf{Spanish} comprueba la codificación en el momento en que se
% usa un acento: si es |OT1|, se toman medidas para facilitar la
% división, que pese a todo nunca será perfecta, y si es |T1|,
% se accede directamente al carácter correspondiente.
%
% \begin{decl}
% \txt  |"-    "=    "~|\act{shorthands}
% \deact{\textit{es-noshorthands, es-sloppy}}
% \end{decl}
%
% Para matizar la división de palabras hay cuatro posibilidades, dos 
% de ellas con el método de abreviaciones:
% \begin{itemize}
% \item  |\-| es un guión opcional que no permite
% más divisiones, 
%
% \item |"-| es similar pero permite más divisiones,
%
% \item |-| es un guión que no permite más divisiones ni
% antes ni después, y
% 
% \item |"=| es el equivalente que sí las permite,\footnote{No
% es una buena idea usar esta orden, pero en 
% medidas muy cortas puede resultar necesario.}
%
% \end{itemize}
% Por ejemplo (con las posibles divisiones marcadas con \hmk):
% \begin{quote}\small\begin{tabbing}
% |Zaragoza-Barcelona|\qquad \= Zaragoza-\hmk Barcelona\\
% |Zaragoza"=Barcelona| \>
%    Za\hmk ra\hmk go\hmk za-\hmk Bar\hmk ce\hmk lo\hmk na\\
% |semi\-abierto| \> semi\hmk abierto\\
% |semi"-abierto| \> se\hmk mi\hmk abier\hmk to.\footnotemark
% \end{tabbing}\footnotetext{Justo antes y después de
% {\ttfamily\string"\string-} y {\ttfamily\string"\string=} se
% aplican los correspondientes
% valores de {\ttfamily\string\...hyphenmin} lo que implica que la
% divisón semia\hmk bierto no es posible.
% éste es un comportamiento correcto.}
% \end{quote}
%
% Con la abreviación |"~|, el guión
% también aparece al comienzo de la siguiente línea. Por ejemplo:
% \begin{quote}\small\begin{tabbing}
% |infra"~rojo|  \quad \= in\hmk fra-ro\hmk jo, pero infra-\hmk-rojo.
% \end{tabbing}\end{quote}
%
% \begin{decl}
%\txt  |"+  "+-  "+--|\act{shorthands}\deact{\emph{no-shorthands, 
% es-sloppy}}
% \end{decl}
%\vskip-1.5pc\vskip0pt
% \begin{decl}
% \txt  |~-  ~--  ~---|\act{shorthands}\deact{es-notilde, \emph{no-shorthands, 
% es-minimal, es-sloppy}}
% \end{decl}

% Evitan divisiones: |~-|, que resulta útil para expresar una serie
% de números sin que el guión los divida (12~-14, |12~-14|), y
% |~---|, que es la forma que debe usarse para abrir incisos con
% rayas, ya que de lo contrario puede haber una división entre la
% raya de abrir y la palabra que le sigue:
% \begin{quote}\small\begin{tabbing}
%|Los conciertos ~---o % academias--- que organizó...|
% \end{tabbing}\end{quote}
%
% También pueden emplearse para esta misma función las abreviaciones
% |"+|, |"+-| y |"+---|.  Mientras que este guión evita toda posible
% división en los elementos que une, la raya (---) y la semirraya
% (--) las permiten en las palabras que le precedan o le sigan.
% 
% Otra abreviación es |"rr| que sirve para el 
% único cambio de escritura del castellano en caso de haber división.  
% La \lsc{RAE} indica que al añadir un prefijo que termina en vocal a 
% una palabra que comienza con \emph{r}, ésta última debe 
% doblarse a menos que se unan por un guión. Por ejemplo:
% \begin{quote}\small\begin{tabbing}
% |extra"rradio|  \quad \= ex\hmk trarra\hmk dio, pero extra-\hmk 
%    radio.
% \end{tabbing}\end{quote}
% No hay acuerdo sobre si esta regla y otras similares han de 
% aplicarse o no, aunque la opinión mayoritaria actual está en
% contra.
%
% \subsection{Otros}
%
% \begin{decl}
% \txt  |"/|\act{shorthands}\deact{\textit{es-noshorthands, es-sloppy}}
% \end{decl}
%
% Es una utilidad tipográfica más que específicamente española.
% En ciertos tipos, como Times, el extremo inferior de la barra está
% en la línea de base y expresiones como <<am/pm>> resultan poco
% estéticas.  |"/| produce una barra que, de ser necesario, se baja
% ligeramente.  Computer Modern tiene una barra bien diseñada y no es
% posible ilustrar aquí este punto, pero se escribiría
% |am"/pm|.
%
% \begin{decl}
% \txt  |"y|\act{shorthand}\deact{\textit{es-noshorthands, es-sloppy}}
% \end{decl}
%
% El signo \textit{et tironiano}, que en español se empleó muy a
% menudo, se puede <<imitar>> con |"y|, siempre que se haya cargado el
% paquete |graphics|; de no ser así, se usa la letra $\tau$, aunque
% la variante normal de \TeX{} no es demasiado apropiada.
%
% \section{Funciones de texto y matemáticas}
%
% \subsection{Abreviaturas}
%
% \begin{decl}
% \txt  |\sptext|\marg{texto}\act{text}\deact{\textit{es-sloppy}}
% \end{decl}
%
% Pone un punto y le sigue el argumento en voladitas.  Para
% abreviaturas como |adm\sptext{ón}| que da adm\sptext{ón}.  Hay seis
% abreviaciones asociadas a ordinales: |"a|, |"A|, |"o|, |"O|, |"er| y
% |"ER| que equivalen a |\sptext{a}|, etc. Muchos tipos
% añaden un pequeño subrayado que debe evitarse, y por tanto no se
% deben escribir los ordinales con \textsf{inputenc}.
%
% Para ajustar el tamaño lo mejor posible, se usa el de
% índices en curso. Esto funciona bien salvo para tamaños muy 
% grandes o muy pequeños, donde los resultados son meramente
% aceptables. 
%
% En Plain \TeX{} se ejecuta |\sptextfont| para la
% letra voladita, de forma que |{\bf\let\sptextfont\bf 1"o}| da el
% resultado correcto (|\mit| si es para cursiva). Para usar un tipo
% nuevo con |\sptext| hay que definir también las variantes 
% matemáticas con |\newfam|.
%
% \subsection{Espaciado}
% 
% El espaciado español difiere relativamente poco del inglés, con
% alguna excepción; una de ellas es que en \textsf{spanish}
% |\frenchspacing| está activo.
% 
% \begin{decl}
% \txt  |\...|\act{text}\deact{\textit{es-sloppy}}
% \end{decl}
%
% Puntos suspensivos menos espaciados que  |\dots|. El espacio 
% que sigue se conserva:
% \begin{quote}\small\begin{tabbing}
% |\... y solo estaba\... ella.|\quad\=\... y solo estaba\... ella.
% \end{tabbing}\end{quote}
% También podrían escribirse los tres puntos sin más |...|, y en
% la práctica no hay diferencia, a menos que se cambie el
% valor del espacio tras punto; en ese caso, la forma con barra
% da los valores apropiados \emph{dentro} de una sentencia, y
% los tres puntos \emph{al final} de ella. Esta orden no 
% interfiere con el valor original de |\.| (un punto suprascrito).
%
% \begin{decl}
% \txt  |\%|\act{text}\deact{\textit{es-minimal, es-sloppy}}
% \end{decl}
%
% Se añade un espacio fino antes del signo (en concreto |\,|), con
% lo cual se puede "<recuperar"> con su opuesto |\!| si |\%| no sigue
% a una cifra; también se puede emplear |\percentsign|).
%
% \begin{decl}
% \con  |\spanishplainpercent|
% \end{decl}
%
% Orden para que |\%| no añada el espacio fino. Puede ser útil 
% en cuadros, si |\%| aparece siempre entre paréntesis.
%
% \subsection{Fuentes}
%
% \begin{decl}
% \txt |\lsc|\marg{texto}\act{text}\deact{\textit{es-sloppy}}
% \end{decl}
%
% Pasa \textit{texto} a versalitas:
% \begin{quote}\small\begin{tabbing}
% |\lsc{RAE}| \quad \= \lsc{RAE}\\
% |\lsc{ReNFe}| \quad \= \lsc{ReNFe}.\\
% |siglo \lsc{XVII}| \quad \= siglo \lsc{XVII}\\
% |capítulo \lsc{II}| \quad \= capítulo \lsc{II}.
% \end{tabbing}\end{quote}
% 
% Para evitar que con un tipo que carece de versalitas acabe
% apareciendo (por substitución) un texto de minúsculas se intenta
% usar en estos casos las versales \emph{reales} de un tamaño menor
% (\LaTeX\ tiende a sustituir versalitas por versalitas, pero hay
% excepciones, como con las negritas).
% 
% \begin{decl}
% \txt |\í|\alw
% \end{decl}
%
% Lo mismo que |í|.
%
% \subsection{Entrecomillados}
% 
% \begin{decl}
% \txt |\begin{quoting} ... \end{quoting}|\alw
% \end{decl}
%
% El entorno |quoting| entrecomilla un texto, añadiendo comillas de
% seguir al comienzo de cada párrafo en su interior.\footnote{Se puede
% encontrar una detallada exposición de las comillas en \DTL{44 ss.}
% De ahí se ha tomado algún ejemplo.}
%
% \begin{decl}
% \txt |<<    >>|\act{shorthands}\deact{es-noquoting, \textit{es-noshorthands, es-minimal, 
% es-sloppy}}
% \end{decl}
%\vskip-1.5pc\vskip0pt
% \begin{decl}
% \txt |"`    "'|\act{shorthands}\deact{\textit{es-noshorthands, es-sloppy}}
% \end{decl}
%
% También se pueden emplear las abreviaciones |<<| y |>>| (o
% alternativamente |"`| y |"'|) que se limitan a llamar a |quoting|,
% que por ser entorno considera sus cambios internos como locales.
% (Es decir, |<< ... >>| implica |{<< ... >>}|.) Las abreviaciones
% |"<| y |">| continúan dando sin más los caracteres de comillas de
% abrir y cerrar, respectivamente.
% 
% Por ejemplo:
%\begin{verbatim}
% <<Se llaman <<comillas de seguir>> a las que son de cierre,
% pero se colocan al comienzo de cada párrafo cuando se transcribe
% un texto entrecomillado con más de un párrafo.
% 
% En su interior, como de costumbre, se usan inglesas.>>
%\end{verbatim}
% cuyo resultado es:
% \begin{quotation}\small
% <<Se llaman <<comillas de seguir>> a las que son de cierre,
% pero se colocan al comienzo de cada párrafo cuando se transcribe
% un texto entrecomillado con más de un párrafo.
% 
% En su interior, como de costumbre, se usan inglesas.>>
% \end{quotation}
%
% También se añaden comillas de seguir en listas, excepto con la
% opción \texttt{es-nolists} o cualquier otra que las desactive.
% 
% Este entorno se puede redefinir, como por ejemplo:
%\begin{verbatim}
% \renewenvironment{quoting}{\itshape}{}
%\end{verbatim}
% pero en principio no implica un nuevo párrafo, ya que 
% está pensado para ser usado también en el texto.
%
% \begin{decl}
% \con |\lquoti| |\rquoti| |\lquotii| |\rquotii| |\lquotiii| 
% |\rquotiii|
% \end{decl}
% 
% Controlan las comillas en |quoting|, según el
% nivel en que nos encontremos. |\lquoti| son las comillas de abrir
% más exteriores, |\lquotii| las de segundo nivel, etc., y lo mismo
% para las de cerrar con |\rquoti|... Para las de seguir siempre se
% usan las de cerrar. Los valores predefinidos están en el cuadro 3.
% \begin{table}
% \center\small
% \caption{Entrecomillados}
% \vspace{1.5ex}
% \begin{tabular}{l@{\hspace{5em}}l}
% \toprule2
% |\lquoti|   &|"<|\\
% |\rquoti|   &|">|\\
% |\lquotii|  &|``|\\
% |\rquotii|  &|''|\\
% |\lquotiii| &|`|\\
% |\rquotiii| &|'|
% \botrule2
% \end{tabular}
% \end{table}
% 
% \begin{decl}
% \con |\activatequoting    \deactivatequoting|
% \end{decl}
% 
% Las incompatibilidades potenciales de estas abreviaciones son
% enormes. Por ejemplo, en \textsf{ifthen} se cancelan las
% comparaciones entre números;\,\footnote{Y en \texttt{\textbackslash 
% ifnum},
% \texttt{\textbackslash ifdim}, etc., usado por los desarrolladores en
% los paquetes.} también
% resultan inoperantes |@>>>| y |@<<<| de
% \textsf{amstex}.\footnote{Aunque en 
% este caso cabe usar los sinónimos |@)))| y |@(((|.}
% Por ello, se da la posibilidad de cancelarlas y reactivarlas con
% estas órdenes, aunque si se está usando 
% \textsf{xmltex} ya se
% desactivan por completo de forma automática. El entorno
% |quoting| siempre permanece disponible.\footnote{Algunos tipos
% disponen de esta ligadura de forma interna para
% generar los caracteres de comillas, por lo que en ellos también
% podemos usarlos siempre, aunque los ajustes proporcionados por
% \textsf{spanish} se pueden perder; por otra parte, tampoco se
% usan demasiado a menudo.}
% 
% \subsection{Funciones matemáticas}
%
% \begin{decl}
% \txt |\lim \limsup \liminf \bmod \pmod \sen \tg| 
% etc.\act{math}\deact{\textit{es-minimal, es-sloppy}}
% \end{decl}
%
% Tradicionalmente, las abreviaciones de lo que en \TeX\ se conocen
% como operadores se han formado a partir del nombre castellano, lo
% que implica la presencia del acento en lím (en sus tres formas
% |\lim|, |\limsup| y |\liminf|), máx, mín, ínf y mód (en sus dos
% formas |\bmod| y |\pmod|).
%
% Con \textsf{spanish} pueden seguirse varias convenciones con ayuda
% de las siguientes órdenes:
% \begin{decl} \con |\accentedoperators| |\unaccentedoperators|
% \end{decl}
% Activa o desactiva los acentos.
% Por omisión se acentúan, como por ejemplo: $\lim_{x\to 0}(1/x)$
% (|$\lim_{x\to 0}(1/x)$|).
% 
% \begin{decl}
% \con |\spacedoperators| |\unspacedoperators|
% \end{decl}
% Activa o desactiva el espacio entre "<arc"> y la función.
% Lo habitual ha sido con espacio; así pues, por omisión
% se espacia.
%
% También se añaden |\sen|, |\arcsen|, |\tg| y |\arctg|,
% que dan las funciones respectivas.
% \begin{decl}
% \con |\spanishoperators|
% \end{decl}
%
% Otras funciones trigonométricas se encuentran almacenadas en el
% parámetro |\spanishoperators|, que inicialmente incluye cotg,
% cosec, senh y tgh. La razón por la que estas funciones se han
% separado es porque su forma no está normalizada en el ámbito
% hispanohablante. De esta forma se puede cambiar por otras con, por
% ejemplo:
%\begin{verbatim}
% \renewcommand{\spanishoperators}{ctg arc\,ctg sh ch th}
%\end{verbatim}
% (separadas con espacio). Cuando se selecciona \textsf{spanish} se crean
% órdenes con esos nombres
% y que dan esas funciones (siempre con |\nolimits|). Además de
% las letras sin acentuar se aceptan las órdenes |\,| y |\acute|, que
% se pasan por alto para formar el nombre. Por ejemplo, |arc\,ctg|
% se escribe en el documento con
% |\arcctg|, |M\acute{a}x| como |\Max| y |cr\acute{i}t| como |\crit|
% (hay que usar |i| y no |\dotlessi|).
% La orden |\,| responde a |\|(|un|)|spacedoperators|, y |\acute|
% a |\|(|un|)|accentedoperators|.
% 
% Conviene que |\spanishoperators| esté en el preámbulo del
% documento en sí, antes de |\selectspanish| o de 
% |\begin{document}|.
%
% \begin{decl}
% \txt |\dotlessi|\act{math}\deact{\textit{es-sloppy}}
% \end{decl}
% 
% La \textit{i} sin punto también es accesible directamente en modo
% matemático con |\dotlessi|, de forma que se puede escribir
% |\acute{\dotlessi}|. Por ejemplo,
% |$V_{\mathbf{cr\acute{\dotlessi}t}}$| da
% $V_{\mathbf{cr\acute{\dotlessi}t}}$.
%
%
% \section{Opciones generales}
%
% Están pensadas principalmente para documentos basados en una clase
% o un estilo editorial muy preciso que no debe tocarse. Para conocer 
% los cambios exactos, véanse las diferentes entradas que describen 
% las funciones de \textsf{spanish}.
%
% \begin{decl}
% \con |es-minimal|\opp
% \end{decl}
%
% Anula la mayoría de los cambios pero deja unas cuantas utilidades
% que pueden resultar utiles en el momento de escribir el texto. 
% 
% \begin{decl}
% \con |es-sloppy|\opp
% \end{decl}
% 
% Anula, además, todas las ligaduras sin excepción, la eñe en listas y los 
% grupos \textsf{text} y \textsf{math}.
%
% \section{Selección}
%
% \begin{decl}
% |\selectspanish|
% \end{decl}
% 
% Por omisión, \babel{} deja <<dormidas>> las lenguas hasta que se
% llega a |\begin{document}| con el fin de evitar conflictos por
% las abreviaciones; a cambio,
% se priva de la posibilidad de usar las lenguas en el preámbulo 
% en órdenes como |\savebox|, |\title|, |\newtheorem|, etc.
% 
% La orden |\selectspanish| permite activar \textsf{spanish} con sus
% extensiones y abreviaciones antes de
% |\begin{document}|.\footnote{Algunos detalles, que
% apenas afectan a \textsf{spanish}, siguen sin activarse hasta el
% comienzo del documento.}
% De esta forma, podríamos decir
%\begin{verbatim}
% \documentclass{book}
% \usepackage[T1]{fontenc}
% \usepackage[cp1252]{inputenc}
% \usepackage[spanish,activeacute,es-notilde]{babel}
% ... % Mas paquetes
% 
% \selectspanish
% 
% \title{Título}
% \author{Autor}
% \newcommand{\pste}{para"-psicológicamente}
% ...   % Mas definiciones
%
% \begin{document}
%\end{verbatim}
%
% \section{Adaptación}
%
% \subsection{Opciones por países}
% \label{paises}
%
% % \begin{decl} \con |mexico| \quad |mexico-com|
% \end{decl}
%
% La primera cambia \textit{cuadro} a \textit{tabla} y desactiva tanto
% |<||<>||>| como el punto decimal. También cambia
% |"`| y |"'| a ``\,`\,"<\,">\,'\,''. Es decir, aparte de
% redefinir las comillas, equivale a:
% a:
%\begin{verbatim}
%\usepackage[spanish,es-nodecimaldot,es-tabla,es-noquoting]{spanish}
%\end{verbatim}
% La segunda es similar
% pero sí activa el punto decimal. (Obsérvese que no van precedidas
% de |es-|.)
%
% Probablemente, esta opción también sea apropiada en algunos
% países de América Central y del Sur.
%
% \subsection{Configuración}
%
% En sus últimas versiones, \babel{} ofrece la posibilidad
% de cargar automáticamente un archivo con el mismo nombre que
% el principal, pero con extensión |.cfg|. \textsf{Spanish}
% proporciona unas pocas órdenes para ser usadas en este archivo:
%
% \begin{decl}
% \con |\es@activeacute|
% \end{decl}
% Activa las abreviaciones con apóstrofos, sin que sea
% necesario incluir |activeacute| como opción en |\usepackage|.
%
% \begin{decl} \con |\es@enumerate{<leveli>}|%
%      |{<levelii>}{<leveliii>}{<leveliv>}|\alw
% \end{decl} 
% Cambia los valores preestablecidos por \textsf{spanish} para
% |enumerate|. \textit{leveln} consiste en una letra, que
% indica qué formato tendrá el número, seguida
% de cualquier texto. La letra tiene que ser: |1| (arábigo),
% |a| (minúscula \emph{cursiva}\,\footnote{La letra es cursiva
% pero no los signos que le puedan seguir. Más bien debería
% decirse destacada, ya que se usa |\string\emph|.
% Véase \DTL{11}.}), |A| (versal),
% |i| (romano \emph{versalita}), |I| (romano versal) o
% finalmente |o| (ordinal\,\footnote{Lo normal es no añadir ningún 
% signo tras ordinal.}).
%
% Esta orden no está pensada para hacer cambios elaborados, sino
% sólo meros reajustes. Los valores preestablecidos 
% equivalen a
%\begin{verbatim}
% \es@enumerate{1.}{a)}{1)}{a$'$)}
%\end{verbatim}
%
% \begin{decl} \con |\es@itemize{<leveli>}|%
%      |{<levelii>}{<leveliii>}{<leveliv>}|\alw
% \end{decl} 
% Lo mismo para |itemize|, sólo que los argumentos se
% usan de forma literal. Los valores originales de \LaTeX{} son
% similares a
%\begin{verbatim}
% \es@itemize{\textbullet}{\normalfont\bfseries\textendash}
%    {\textasteriskcentered}{\textperiodcentered}
%\end{verbatim}
%
% \begin{decl}\con |\es@operators|\act{math}
% \end{decl}
% Todo lo relativo a operadores se cancela con
%\begin{verbatim}
% \let\es@operators\relax
%\end{verbatim}
% Es buena idea incluirlo si no se van a usar, ya que ahorra memoria.
%
% Otros ajustes útiles en este contexto son |\spanishoperators|,
% |\selectspanish| y |\deactivatequoting|.
%
%
% Recordemos que todos los cambios
% operados desde este archivo restan compatibilidad al
% documento, por lo que si se distribuye conviene adjuntarlo
% con el entorno |filecontents|.
%
% \subsection{Pasar opciones desde un paquete o clase}
%
% \begin{decl} \con |\spanishoptions|
% \end{decl}
%
% Como |\PassOptionsToPackage| añade opciones al comienzo y
% las opciones específicas de \textsf{spanish} han de ir al final, definiendo
% esta macro se puede controlar el comportamiento de \textsf{spanish} antes
% de su carga.
%
% \subsection{Otros cambios}
%
% Las adaptaciones se encuentran organizadas en varios grupos, a los 
% que corresponden sendas macros: 
% |\textspanish|, |\mathspanish|,
% |\shorthandsspanish|, |\datespanish| y |\captionsspanish|. Pueden
% cancelarse con:
%\begin{verbatim}
%  \renewcommand\textspanish{}
%\end{verbatim}
%
% \section{Plain \TeX}
% 
% Con Plain hay que hacer:
%\begin{verbatim}
% \input spanish.sty
%\end{verbatim}
% 
% Se incluyen: traducciones, casi todas las abreviaciones, coma
% decimal, utilidades para división de palabras, ordinales en una
% versión simplificada (y no muy elegante), funciones matemáticas,
% |\í| y espaciado. La selección de la lengua es inmediata al
% cargar el archivo.
% 
% En cambio no están disponibles: entrecomillados, 
% |\lsc| ni las adaptaciones de lengua principal.
%
% \section{Compatibilidad con versiones anteriores}
%
% En versiones de \textsf{babel} bastante antiguas, las abreviaciones 
% con |'| se activaban por omisión, mientras que ahora es necesario
% |activeacute|.
%
% En la versión 4, la abreviación |~n| se consideró para extinguir.
% En la versión 5 sigue estando, pero \textit{no} se activa por
% omisión, sino que hay que emplear |es-tilden|.
%
% En la versión 5 el grupo \textsf{layout} no se retrasa a
% |\begin{document}|, como en la 4, sino que se ejecuta
% inmediatamente. Esto permite cambios en el preámbulo con otros
% paquetes. Con ello, además, |\selectspanish*| carece de utilidad.
% La opción de paquete |es-delayed| restaura el comportamiento
% anterior, por si hubiera alguna incompatibilidad.
%
% La compatibilidad con la versión 2.09 de \LaTeX{} se ha suprimido.
%
% \section*{Referencias}
% \addcontentsline{toc}{section}{Referencias}
%
% \begingroup
% \small
% \leftskip1.5cm \parindent-1.5cm
%
% \makebox[1.5cm][l]{\lsc{DRAE}}\textit{Diccionario de la Academia
%    Española}, Madrid, Espasa-Calpe, 21"a ed., 1992.
%
% \makebox[1.5cm][l]{\lsc{DOT}}José Martínez de Sousa,
%   \textit{Diccionario de ortografía técnica}, 
%   Madrid, Germán Sánchez Ruipérez/Pirámide, 1987.
%   (Biblioteca del libro.)
%
% \makebox[1.5cm][l]{\lsc{DTL}}José Martínez de Sousa,
%   \textit{Diccionario de tipografía y del libro}, 
%   Madrid, Paraninfo, 3"a ed., 1992.
%
% \makebox[1.5cm][l]{\lsc{MEA}}José Martínez de Sousa,
%   \textit{Manual de edición y autoedición}, 
%   Madrid, Pirámide, 1994.
%
% \leftskip0pt \parindent0pt \vspace{6pt}
%
% {\itshape
% Para otras cuestiones tipográficas, las referencias
% usadas son, entre otras:}
%
% \parindent-1.5pc \leftskip1.5pc \vspace{3pt}
%
% Asociación de Academias de la Lengua Española,
% \textit{Diccionario panhispánico de dudas}, Madrid, Santillana, 2005.
%
% Javier Bezos,
% \textit{Tipografía española con \TeX}, documento electrónico
% disponible en 
% \textsf{http://perso.wanadoo.es/jbezos/tipografia.html}. 
%
% Javier Bezos,
% \textit{Tipografía y notaciones científicas}, Gijón, 
% Trea, 2008.
%
% Bureau International des Poids et mesures,
% \textit{Le Sist\`{e}me international dúnités},
% 8"a ed., París, {\footnotesize BIPM}, 2006, 
% \textsf{http://www.bipm.org/""fr/""si/""si\_brochure/}, 2006-11-10.
%
% Jorge de Buen,
% \textit{Manual de diseño editorial,} México, Santillana, 2000.
%
%
% \textit{The Chicago Manual of Style}, Chicago, University of
% Chicago Press, 14"a~ed., 1993, esp.~págs.~333~-335.
%
% José Fernández Castillo,
% \textit{Normas para correctores y compositores tipógrafos},
% Madrid, Espasa-Calpe, 1959.
%
% IRANOR [AENOR], Normas \lsc{UNE} números 5010 (<<Signos 
% matemáticos>>), 5028 (<<Símbolos 
% geométricos>>) y 5029 (<<Impresión de los
% símbolos de magnitudes y unidades y de los números>>). 
% [Obsoletas.]
%
% Llerena, Mario,
% \textit{Un manual de estilo,} Miami, Unilit, 1999.
%
% Real Academia Española,
% \textit{Esbozo de una nueva gramática de la
% lengua española}, Madrid, Espasa-Calpe, 1973.
% 
% V.\ Martínez Sicluna,
% \textit{Teoría y práctica de la tipografía},
% Barcelona, Gustavo Gili, 1945.
%
% José Martínez de Sousa,
% \textit{Diccionario de ortografía de la lengua española},
% Madrid, Paraninfo, 1996.
%
% Juan Martínez Val, \textit{Tipografía práctica}, Madrid,
% Laberinto, 2002.
%
% Juan José Morato, \textit{Guía práctica del compositor 
% tipográfico}, Madrid, Hernando, 2"a ed., 1908 (1"a ed., 1900,
% 3"a ed., 1933).
%
% Marion Neubauer,
% <<Feinheiten bei wissenschaftlichen Publikationen>>,
% \textit{Die \TeX nisches Kom\"odie},  parte I, vol. 8, n"o 4, 1996,
% págs. 23-40; parte II, vol. 9, n"o 1, 1997, págs.~25~-44.
%
% Notimex, \textit{Manual de operación y estilo editorial}, México, 
% Notimex, 1999.
%
% José Polo,
% \textit{Ortografía y ciencia del lenguaje}, Madrid, Paraninfo, 
% 1974.
%
% Siglo 21, \textit{Libro de estilo}, México, Alda, 
% $\mathrm{^s}\!$/$\mathrm{_f}$
% (impr.  1995).
%
% Pedro Valle,
% \textit{Cómo corregir sin ofender}, Buenos Aires, Lumen, 1998.
%
% Hugh C. Wolfe, <<Símbolos, unidades y nomenclatura>>, 
% \textit{Enciclopedia de Física}, dir. Rita G. Lerner y George L. 
% Trigg, Madrid, Alianza, 1987, t.~2, págs.~1423~-1451.
%
%\endgroup
%
% \else
%
%^^A  ======= Beginning of text as typeset by user.drv =========
%
% \GetFileInfo{spanish.dtx}
%
% \section{The Spanish language}
%
% The file \file{\filename}\footnote{The file described in this
% section has version number \fileversion\ and was last revised on
% \filedate.  The maintainer from v4.0 on is Javier Bezos
% (http://www.tex-tipografia.com).  Previous
% versions were made by Julio S\'anchez.  The English documentation
% has been improved by JosÃƒÂ© Luis Rivera; thanks to him it is now a lot
% clearer.} defines all the language-specific macros for the Spanish
% language.
%
% Spanish support is implemented following mainly the guidelines given
% by Jos\'e Mart\'\i nez de Sousa.  You may get the the full
% documentation (more comprehensive, but regrettably only in Spanish)
% by typesetting |spanish.dtx| directly.  There are examples and some
% additional features documented in the Spanish version only.
% Cross-references in this section point to that document.
% 
% \paragraph{Features} This style provides:
%
% \begin{itemize}
% \item Translations following the International \LaTeX{} 
% conventions, as well as |\today|.
% 
% \item Shorthands listed in Table~\ref{tab:spanish-quote-def}.
% Examples in subsection~3.4 are illustrative.  Notice that |"~| has a
% special meaning in \textsf{spanish} different to other languages,
% and is used mainly in linguistic contexts.
% 
% \begin{table}[htb]
% \centering
% \begin{tabular}{lp{8cm}}
% |'a|      & Acute accented a. Works for e, i, o, u, too (both
%             lowercase and uppercase).\\
% |'n|      & \~n (uppercase too).\\
% |"i|      & \"i (uppercase too).\\
% |"u|      & \"u (uppercase too).\\
% |"a| |"o| & Ordinal numbers (uppercase |"A|, |"O| too).\\
% |"er "ER| & Ordinal 1.\textsuperscript{er} 1.\textsuperscript{\textsc{er}}\\
% |"c|      & \c{c} (uppercase too).\\
% |"rr|     & rr, but -r when hyphenated.\\
% |"y|      & An old ligature for ``et'' (like the English \&).\\
% |"-|      & 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. Works for
%             en-dashes (|~--|) and em-dashes (|~---|). |"+|, |"+-| 
%             and |"+--| are synonymous.\\
% |"/|      & A slash slightly lowered, if necessary.\\
% \verb+"|+ & Disable ligatures at this point.\\
% |"<|      & Left guillemets.\\
% |">|      & Right guillemets.\\
% |<<| |>>| & |\begin{quoting}| and |\end{quoting}|. (See below.) 
%             |"`| and |"'| are synonymous.\\
% |"? "!|   & Opening question and exlamation marks (?`!`) 
%             aligned on the baseline, useful for all-caps headings, etc.
% \end{tabular}
% \caption{Extra definitions made by file \file{spanish.ldf}}
% \label{tab:spanish-quote-def}
% \end{table}
% 
% \item |\frenchspacing|.
%
% \item \emph{In math mode}, a dot followed by a digit is replaced
% by a decimal comma.
% 
% \item Spanish ordinals and abbreviations with the |\sptext|\marg{text}
% command as, for instance, |1\sptext{er}|. The preceptive dot is included.
% 
% \item Accented (l\'\i m, m\'ax, m\'\i n, m\'od) and spaced
% (arc\,cos, etc.) functions. 
%
% \item |\dotlessi| is provided for use in math mode.
%
% \item A |quoting| environment and a related pair of shorthands |<<|
% and |>>|. Useful for traditional spanish multi-paragraph quoting.
%
% \item There is a small space before the percent |\%| sign.
% 
% \item |\lsc| provides lowercase small caps. (See subsection~3.10.)
%
% \item Ellipsis is best typed as |...| or, within a sentence, as |\...|
% 
% \end{itemize}
% 
% If \textsf{spanish} is the main language, the command 
% |\layoutspanish| is added to the main group, modifying the standard
% classes throughout the whole document in the following way:
%
% \begin{itemize}
%
% \item Paragraphs are set with |\indentfirst|.
% 
% \item Both |enumerate| and |itemize| are adapted to Spanish rules.
% 
% \item Both |\alph| and |\Alph| include \textit{\~n} after \textit{n}.
% 
% \item Symbol footmarks are one, two, three, etc., asterisks.
% 
% \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 discouraged (see below).
% 
% \item There is a dot after section numbers in titles, headings, and toc.
%
% \end{itemize}
%
% A subset of these features is implemented for Plain \TeX{}
% (accesible with the command |\input spanish.sty|).  Most
% significantly, |\lsc|, the |quoting| environment, and features
% provided by |\layoutspanish| are missing.
%
% \paragraph{Customization}
%
% Beginning with version 5.0, customization is made following two paths:
% via |options| or via |commands|; these options and commands override 
% the layout for Spanish documents at different levels: options are meant for 
% use at the preamble only, while commands may be used in the configuration
% file or at document level.
%
% Global options control the overall appearance of the document, and may 
% be set on the |{babel}| call, right after calling |spanish|, or 
% shortly before the call to |{babel}|, to ensure their proper loading
% at runtime. Thus, the following calls are roughly equivalent:
% 
% \begin{verbatim}
% \usepackage[...,spanish,es-nosectiondot,es-nodecimaldot,...]{babel}
% 
% \def\spanishoptions{es-nosectiondot,es-nodecimaldot}
% \usepackage[...,spanish,...]{babel}
% \end{verbatim}
%
% \begin{table}
% \centering
% \begin{tabular}{cccc}\hline
%  Basic Options       & |es-minimal| & |es-sloppy| & |es-noshorthands| \\\hline
%  |es-noindentfirst|  & X  & X  &   \\
%  |es-nosectiondot|   & X  & X  &   \\
%  |es-nolists|        & X  & X  &   \\
%  |es-noquoting|      & X  & X  & X \\
%  |es-notilde|        & X  & X  & X \\
%  |es-nodecimaldot|   & X  & X  & X \\
%  |es-nolayout|       &    & X  &   \\
%  |es-ucroman|        & X  &    &   \\
%  |es-lcroman|        & X  & X  &   \\\hline
% \end{tabular}
%  \caption{Spanish Customization Options}
%  \label{tab:SpanishCustomizationOptions}
% \end{table}
%
% Some global options are built upon lower level options, and may be
% used as shorthand for more global customizations.
% Table~\ref{tab:SpanishCustomizationOptions} gives an overview of the
% global options constructed this way.  Most of these options are
% self-explanatory: they disable the changes made to the basic \LaTeX\
% layout by |spanish|.  |es-lcroman| however, and a few others, need a
% bit of explanation, and they may be described as follows:
%
% \begin{itemize}
%
% \item Traditional Spanish typography discourages the use of
% lowercase Roman numerals; instead, a smallcaps variant is
% implemented.  However, since |Makeindex| seems to choke on the code
% implementing lowercase Roman numerals (via the |\lsc| macro), two
% workarounds are implemented: the |es-ucroman| option converts all
% Roman numerals to uppercase, and the |es-lcroman| option turns all
% Roman numerals to lowercase; the former should be preferred over the
% latter.  Three macros control local changes to Roman numbers:
% |\spanishscroman|, |\spanishucroman|, and |\spanishlcroman|.
% 
% \item The |es-preindex| option calls the |romanidx.sty| package
% automatically to fix index entries in smallcaps roman form.  An
% additional macro,
% |\spanishindexchars|\marg{encap}\marg{openrange}\marg{closerange}
% determines the characters delimiting index entries.  Defaults are
% \verb=\spanishindexchars{|}{(}{)}=.
%
% \item The |es-tilden| option restores the old tilde |~| shorthand
% for \~n.  This shorthand is however \emph{strongly} deprecated.
%
% \item The |es-nolayout| option disables layout changes in the
% document when |spanish| is the main language.  These changes affect
% enumerated and itemized lists, enumerations (alphabetic order
% excludes \~n), and symbolic footnotes.
%
% \item The |es-noshorthands| disables the shorthand mechanism
% completely: neither |"| nor |'| nor |<| nor |>| nor |~| nor |.| work
% at all.
%
% \item The |es-noquoting| option disables the macros |<<| and |>>|
% calling the |quoting| environment; the alternative macros |"`| and
% |"'| are still available.
%
% \item The |es-uppernames| option makes uppercase versions of
% captions for chapter, tablename, etc.
%
% \item The |es-tabla| option changes ``cuadro'' for ``tabla'' in
% captions.
%
% \end{itemize}
%
% Finally, the Spanish 5 series begins the implementation of national
% variations of Spanish typography, beginning with Mexico.  Thus the
% global options |mexico| and |mexico-com| are adapted to practices
% spread in Mexico, and perhaps Central America, the Caribbean, and
% some countries in South America.\footnote{The main difference is
% that |mexico| disables the |decimaldot| mechanism, while
% |mexico-com| keeps it enabled; both change the |quoting|
% environment, disabling the use of guillemets.}
%
% Many of the global options are implemented via macros, which may be
% included in the configuration file |spanish.cfg|, in the preamble,
% after the call to |babel|, and in the body of the document.  These
% macros are the following.
%
% \begin{itemize}
%
% \item The macros |\spanishdashitems| and |\spanishsignitems| change
% the values of itemized lists to a series of dashes or an alternative
% series of symbols, respectively.
%
% \item The command |\deactivatequoting| deactivates the |<<| and |>>|
% shorthands if you want to use |<| and |>| in numerical comparisons
% and some AMS\TeX\ commands.
% 
% \item You may kill the space in spaced operators with
% |\unspacedoperators|. 
%
% \item You may kill the accents on accented operators with 
% |\unaccentedoperators|.  
%
% \item The command |\decimalpoint| resets the decimal separator to
% its default (dot) value, while |\spanishdecimal|\marg{symbol} allows
% for an arbitrary definition.
%
% \item |\spanishplainpercent| prevents the addition of a thinspace before 
% the percent sign in texts. This might be useful for parenthesized percent
% signs in tables, etc.
%
% \item The macros |\spanishdatedel| and |\spanishdatede| control the 
% if the article is given in years (|del| or |de|). 
%
% \item The macro |\spanishreverseddate| sets the date of the format
% ``Month Day del Year''.
%
% \item The macro |\Today| gives months in uppercase.
%
% \item The macros |\spanish|\textit{caption} change the value of the \emph{caption} 
% automatically (no need to add an |\addto|).
%
% \item The command |\spanishdeactivate|\marg{characters} disables the
% shorthand characters listed in the argument.  Elegible characters
% are the set |.'"~<>|.  These shorthand characters may be globally
% deactivated for Spanish adding this command to |\shorthandsspanish|.
%
% \item Extras are divided in groups controlled by the commands
% |\textspanish|, |\mathspanish|, |\shorthandsspanish| y
% |\layoutspanish|; their values may be cancelled typing
% |\renewcommand|\marg{command}|{}|, or changed at will (check the
% Spanish documentation or the code for details).
% 
% \item The command |\spanishoperators|\marg{operators} defines
% command names for operators in Spanish.  There is no standard name
% for some of them, so they may be created or changed at will.  For
% instance, the command
% |\renewcommand{\spanishoperators}{arc\,ctg m\acute{i}n}|
% creates commands for these functions.  The command
% |\,| adds thinspaces at the appropriate places for spaced operators
% (like |\arcctg| in this case), and the command |\acute|\marg{letter}
% adds an accent to the letter included in the definition (thus,
% |m\acute{i}n| defines the accented function |\min| (m\'\i{}n);
% please notice that |\dotlessi| is not necessary).
% 
% \item The commands
% |\lquoti|\marg{string} |\rquoti|\marg{string} 
% |\lquotii|\marg{string} |\rquotii|\marg{string} 
% |\lquotiii|\marg{string} |\rquotiii|\marg{string} 
% set the quoting signs in the |quoting| environment, 
% nested from outside in. They may be |\renew|ed at will. 
% Default values are shown in table~\ref{tab:spanish-quote-ref}.
% \begin{table}
% \center\small
% \vspace{1.5ex}
% \begin{tabular}{l@{\hspace{5em}}l}
% |\lquoti|   &|"<|\\
% |\rquoti|   &|">|\\
% |\lquotii|  &|``|\\
% |\rquotii|  &|''|\\
% |\lquotiii| &|`|\\
% |\rquotiii| &|'|
% \end{tabular}
% \caption{Default quoting signs set for the \texttt{quoting} environment.}
% \label{tab:spanish-quote-ref}
% \end{table}
%
% \item The command |\selectspanish*| is obsolete: if |spanish| is the
% main language, all its features are available right after loading
% |babel|.  The |es-delayed| option is provided to restore the
% previous behavior and macros for backwards compatibility.
% 
% \end{itemize}
%
% \fi
% \endgroup
% 
% \StopEventually{}
%
%^^A ========== End of manual ===============
%
% \ifx\langdeffile\undefined
% 
% \section{The Code}
% 
% \else
%
% \subsection{The Code}
% 
% \fi
%
% \changes{spanish~5.0a}{2007/02/21}{Reimplemented in full, which some 
%   parts rewritten from scratch. Added the es- mechanism and the mexico
%   option. Many bug fixes.}
% \changes{spanish~5.0d}{2008/05/25}{Fixed two bugs: misplaced 
%   subscripts with lim and the like; problem with \cs{roman} and hyperref.} 
% \changes{spanish~5.0h}{2009/01/02}{Removed unnecessary \cs{string}s 
%   with two acutes. Added es-noenumerate, es-noitemize.}
% \changes{spanish~5.0i}{2009/05/11}{romanidx not working. Some \cs{es@roman}
%   replaced with \cs{es@scroman}.}
% \changes{spanish~5.0j}{2010/01/06}{Overdot \cs{.} was not robust.}
% \changes{spanish~5.0j}{2010/04/04}{Colon in saved catcodes, because 
%   babel doesn't restore it after french}
% \changes{spanish~5.0k}{2011/08/08}{When saving ., check if 
%   \cs{mathcode} is 8000}
%
%    This file is for both \LaTeXe{} and Plain formats.
%
%    \begin{macrocode}
%<*code>
\ProvidesLanguage{spanish.ldf}
    [2011/10/06 v5.0k Spanish support from the babel system]
\LdfInit{spanish}\captionsspanish

\edef\es@savedcatcodes{%
 \catcode`\noexpand\~=\the\catcode`\~
 \catcode`\noexpand\"=\the\catcode`\"
 \catcode`\noexpand\:=\the\catcode`\:}
\catcode`\~=\active
\catcode`\"=12
\catcode`\:=12

\ifx\undefined\l@spanish
 \@nopatterns{Spanish}
 \adddialect\l@spanish0
\fi

\def\es@sdef#1{\babel@save#1\def#1}
\def\es@sDRC#1{\babel@save#1\DeclareRobustCommand*#1}

\@ifundefined{documentclass}
 {\let\ifes@latex\iffalse}
 {\let\ifes@latex\iftrue}
%    \end{macrocode}
%
%    Package options for spanish. To avoid error messages dummy
%    options are created on the fly when neccessary.
%
%    \begin{macrocode}
\ifes@latex

\@ifundefined{spanishoptions}{}
{\PassOptionsToPackage{\spanishoptions}{babel}}

\def\es@genoption#1#2#3{%
 \DeclareOption{#1}{}%
 \@ifpackagewith{babel}{#1}%
  {\def\es@a{#1}%
   \expandafter\let\expandafter\es@b\csname opt@babel.sty\endcsname
   \addto\es@b{,#2}%
   \expandafter\let\csname opt@babel.sty\endcsname\es@b
   \AtEndOfPackage{#3}}%
  {}}

\es@genoption{es-minimal}
 {es-ucroman,es-noindentfirst,es-nosectiondot,es-noenumerate,%
  es-noitemize,es-noquoting,es-notilde,es-nodecimaldot}
 {\spanishplainpercent
  \let\es@operators\relax}
\es@genoption{es-nolists}
 {es-noenumerate,es-noitemize}{}
\es@genoption{es-sloppy}
 {es-nolayout,es-noshorthands}{}
\es@genoption{es-noshorthands}
 {es-noquoting,es-nodecimaldot,es-notilde}{}
\es@genoption{mexico}
 {mexico-com,es-nodecimaldot}{}
\es@genoption{mexico-com}
 {es-tabla,es-noquoting}
 {\def\lquoti{``}\def\rquoti{''}%
  \def\lquotii{`}\def\rquotii{'}%
  \def\lquotiii{\guillemotleft{}}%
  \def\rquotiii{\guillemotright{}}}

\def\es@ifoption#1#2#3{%
 \DeclareOption{es-#1}{}%
 \@ifpackagewith{babel}{es-#1}{#2}{#3}}%

\def\es@optlayout#1#2{\es@ifoption{#1}{}{\addto\layoutspanish{#2}}}

\else

\def\es@ifoption#1#2#3{\@namedef{spanish#1}{#2}}

\fi

\let\es@uclc\@secondoftwo
\es@ifoption{uppernames}{\let\es@uclc\@firstoftwo}{}

\def\es@tablename{Ccuadro}
\es@ifoption{tabla}{\def\es@tablename{Ttabla}}{}
\es@ifoption{cuadro}{\def\es@tablename{Ccuadro}}{}
%    \end{macrocode}
%
%    Captions follow a two step schema, so that, say, |\refname| is 
%    defined as |\spanishrefname| which in turn contains the string
%    to be printed. The final definition of |\captionsspanish|
%    is built below.
%
%    \begin{macrocode}
\def\captionsspanish{%
 \es@a{preface}{Prefacio}%
 \es@a{ref}{Referencias}%
 \es@a{abstract}{Resumen}%
 \es@a{bib}{Bibliograf\'{\i}a}%
 \es@a{chapter}{Cap\'{\i}tulo}%
 \es@a{appendix}{Ap\'{e}ndice}%
 \es@a{listfigure}{\'{I}ndice de \es@uclc Ffiguras}%
 \es@a{listtable}{\'{I}ndice de \expandafter\es@uclc\es@tablename s}%
 \es@a{index}{\'{I}ndice \es@uclc Aalfab\'{e}tico}%
 \es@a{figure}{Figura}%
 \es@a{table}{\expandafter\@firstoftwo\es@tablename}%
 \es@a{part}{Parte}%
 \es@a{encl}{Adjunto}%
 \es@a{cc}{Copia a}%
 \es@a{headto}{A}%
 \es@a{page}{p\'{a}gina}%
 \es@a{see}{v\'{e}ase}%
 \es@a{also}{v\'{e}ase tambi\'{e}n}%
 \es@a{proof}{Demostraci\'{o}n}%
 \es@a{glossary}{Glosario}%
 \@ifundefined{chapter}
  {\es@a{contents}{\'Indice}}%
  {\es@a{contents}{\'Indice \es@uclc Ggeneral}}}

\def\es@a#1{\@namedef{spanish#1name}}
\captionsspanish
\def\es@a#1#2{%
 \def\expandafter\noexpand\csname#1name\endcsname
 {\expandafter\noexpand\csname spanish#1name\endcsname}}
\edef\captionsspanish{\captionsspanish}
%    \end{macrocode}
%
%    Now two macros for dates (upper and lowercase).
%
%    \begin{macrocode}
\def\es@month#1{%
 \expandafter#1\ifcase\month\or Eenero\or Ffebrero\or
 Mmarzo\or Aabril\or Mmayo\or Jjunio\or Jjulio\or Aagosto\or
 Sseptiembre\or Ooctubre\or Nnoviembre\or Ddiciembre\fi}

\def\es@today#1{%
 \ifcase\es@datefmt
  \the\day~de \es@month#1%
 \else
  \es@month#1~\the\day
 \fi
 \ de\ifnum\year>1999\es@yearl\fi~\the\year}

\def\datespanish{%
 \def\today{\es@today\@secondoftwo}%
 \def\Today{\es@today\@firstoftwo}}
\newcount\es@datefmt
\def\spanishreverseddate{\es@datefmt\@ne}
\def\spanishdatedel{\def\es@yearl{l}}
\def\spanishdatede{\let\es@yearl\@empty}
\spanishdatede
%    \end{macrocode}
%
%    The basic macros to select the language in the preamble or the
%    config file. Use of |\selectlanguage| should be avoided at this
%    early stage because the active chars are not yet
%    active. |\selectspanish| makes them active.
%
%    \begin{macrocode}
\def\selectspanish{%
 \def\selectspanish{%
  \def\selectspanish{%
   \PackageWarning{spanish}{Extra \string\selectspanish ignored}}%
  \es@select}}
\@onlypreamble\selectspanish
\def\es@select{%
 \let\es@select\@undefined
 \selectlanguage{spanish}}

\let\es@shlist\@empty
%    \end{macrocode}
%
%    Instead of joining all the extras directly in |\extrasspanish|,
%    we subdivide them in three further groups. 
%
%    \begin{macrocode}
\def\extrasspanish{%
 \textspanish
 \mathspanish
 \ifx\shorthandsspanish\@empty
  \expandafter\spanishdeactivate\expandafter{\es@shlist}%
  \languageshorthands{none}%
 \else
  \shorthandsspanish
 \fi}
\def\noextrasspanish{%
 \ifx\textspanish\@empty\else
  \notextspanish
 \fi
 \ifx\mathspanish\@empty\else
  \nomathspanish
 \fi
 \ifx\shorthandsspanish\@empty\else
  \noshorthandsspanish
 \fi
 \csname es@restorelist\endcsname}

\addto\textspanish{\es@sDRC\sptext{\es@sptext}}

\def\es@orddot{.}
%    \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@latex
 \def\es@sptext#1{%
  {\es@orddot
   \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
 \def\es@sptext#1{%
  {\es@orddot
   \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}
%
%    Lowercase small caps.  We check if the current font has small
%    caps.  If not, we fakes them.  \cs{selectfont} in \cs{es@lsc}
%    seems redundant, but it's not.  An intermediate macro allows
%    using an optimized variant for Roman numerals.
%
%    \begin{macrocode}
\ifes@latex
 \addto\textspanish{\es@sDRC\lsc{\es@lsc}} 
 \def\es@lsc{\es@xlsc\MakeUppercase\MakeLowercase}
 \def\es@xlsc#1#2#3{%
  \leavevmode
  \hbox{%
   \scshape\selectfont
   \expandafter\ifx\csname\f@encoding/\f@family/\f@series
      /n/\f@size\expandafter\endcsname
    \csname\curr@fontshape/\f@size\endcsname
    \csname S@\f@size\endcsname
    \fontsize\sf@size\z@\selectfont
    \PackageWarning{spanish}{Replacing `\curr@fontshape' by
      \MessageBreak faked small caps}%
    #1{#3}%
   \else
    #2{#3}%
   \fi}}
\fi
%    \end{macrocode}
%
%    The |quoting| environment (not available in Plain).  Overriding
%    the default |\everypar| is a bit tricky.
%
%    \begin{macrocode}
\newif\ifes@listquot

\ifes@latex
 \csname newtoks\endcsname\es@quottoks
 \csname newcount\endcsname\es@quotdepth
 \newenvironment{quoting}
  {\leavevmode
  \advance\es@quotdepth\@ne
  \csname lquot\romannumeral\es@quotdepth\endcsname%
  \ifnum\es@quotdepth=\@ne
   \es@listquotfalse
   \let\es@quotpar\everypar
   \let\everypar\es@quottoks
   \everypar\expandafter{\the\es@quotpar}%
   \es@quotpar{\the\everypar
    \ifes@listquot\global\es@listquotfalse\else\es@quotcont\fi}%
  \fi
  \toks@\expandafter{\es@quotcont}%
  \edef\es@quotcont{\the\toks@
   \expandafter\noexpand
   \csname rquot\romannumeral\es@quotdepth\endcsname}}
  {\csname rquot\romannumeral\es@quotdepth\endcsname}
 \def\lquoti{\guillemotleft{}}
 \def\rquoti{\guillemotright{}}
 \def\lquotii{``}
 \def\rquotii{''}
 \def\lquotiii{`}
 \def\rquotiii{'}
 \let\es@quotcont\@empty
%    \end{macrocode}
%
%    If there is a marginpar inside quoting, we don't add the
%    quotes. |\es@listqout| stores the quotes to be used before
%    item labels; otherwise they could appear after the labels.
%
%    \begin{macrocode}  
 \addto\@marginparreset{\let\es@quotcont\@empty}
 \DeclareRobustCommand\es@listquot{%
  \csname rquot\romannumeral\es@quotdepth\endcsname
  \global\es@listquottrue}
\fi
%    \end{macrocode}
%
%    |\frenchspacing|, |\...| and |\%|. 
%
%    \begin{macrocode}
\addto\textspanish{\bbl@frenchspacing}
\addto\notextspanish{\bbl@nonfrenchspacing}
\addto\textspanish{%
 \let\es@save@dot\.%
 \es@sDRC\.{\@ifnextchar.{\es@dots}{\es@save@dot}}}
\def\es@dots..{\leavevmode\hbox{...}\spacefactor\@M}
\def\es@sppercent{\unskip\textormath{$\m@th\,$}{\,}}
\def\spanishplainpercent{\let\es@sppercent\@empty}
\addto\textspanish{%
 \let\percentsign\%%
 \es@sDRC\%{\es@sppercent\percentsign{}}}
%    \end{macrocode}
%    
%    Now, the math group.  It's not easy to add an accent to an
%    operator, because we must avoid using text (that is, |\mbox|)
%    where we have no control on font and size, and at the same time
%    we need |\i|, which is 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\mathspanish{\es@sDRC\dotlessi{\es@dotlessi}}
\let\nomathspanish\relax

\ifes@latex
 \def\es@texti{\i}
 \addto\@uclclist{\dotlessi\es@texti}
\fi

\ifes@latex
 \def\es@dotlessi{%
  \ifmmode
   {\ifnum\mathgroup=\m@ne
     \imath
    \else
     \count@\escapechar \escapechar=\m@ne
     \expandafter\expandafter\expandafter
      \split@name\expandafter\string\the\textfont\mathgroup\@nil
     \escapechar=\count@
     \@ifundefined{\f@encoding\string\i}%
      {\edef\f@encoding{\string?}}{}%
     \expandafter\count@\the\csname\f@encoding\string\i\endcsname
     \advance\count@"7000
     \mathchar\count@
    \fi}%
  \else
   \i
  \fi}
\else
 \def\es@dotlessi{\textormath{\i}{\mathchar"7010}}
\fi

\def\accentedoperators{%
 \def\es@op@ac##1{\acute{\if i##1\dotlessi\else##1\fi}}}
\def\unaccentedoperators{%
 \def\es@op@ac##1{##1}}
\accentedoperators
\def\spacedoperators{\let\es@op@sp\,}
\def\unspacedoperators{\let\es@op@sp\@empty}
\spacedoperators
\addto\mathspanish{\es@operators}

\ifes@latex\else
 \let\operator@font\rm
\fi
%    \end{macrocode}
%
%    Operators are stored in |\es@operators|, which is
%    included in the math group. Since |\operator@font| is
%    defined in \LaTeXe{} only, we define it in the plain variant.
%
%    \begin{macrocode}
\def\es@operators{%
 \es@sdef\bmod{\nonscript\mskip-\medmuskip\mkern5mu
  \mathbin{\operator@font m\es@op@ac od}\penalty900\mkern5mu
  \nonscript\mskip-\medmuskip}%
 \@ifundefined{@amsmath@err}%
  {\es@sdef\pmod##11{\allowbreak\mkern18mu
    ({\operator@font m\es@op@ac od}\,\,##11)}}%
  {\es@sdef\mod##1{\allowbreak\if@display\mkern18mu
    \else\mkern12mu\fi{\operator@font m\es@op@ac od}\,\,##1}%
   \es@sdef\pmod##1{\pod{{\operator@font m\es@op@ac od}%
    \mkern6mu##1}}}%
 \def\es@a##1 {%
  \if^##1^% empty? continue
   \bbl@afterelse
   \es@a
  \else
   \bbl@afterfi
   {\if&##1% &? finish
   \else
    \bbl@afterfi
    \begingroup
    \let\,\@empty % ignore when def'ing name
    \let\acute\@firstofone % id
    \edef\es@b{\expandafter\noexpand\csname##1\endcsname}%
    \def\,{\noexpand\es@op@sp}%
    \def\acute{\noexpand\es@op@ac}%
    \edef\es@a{\endgroup
     \noexpand\es@sdef\expandafter\noexpand\es@b{%
       \mathop{\noexpand\operator@font##1}\es@c}}%
    \es@a % restores itself
   \es@a
  \fi}%
 \fi}%
 \let\es@b\spanishoperators
 \addto\es@b{ }%
 \let\es@c\@empty
 \expandafter\es@a\es@b l\acute{i}m l\acute{i}m\,sup
  l\acute{i}m\,inf m\acute{a}x \acute{i}nf m\acute{i}n & %
 \def\es@c{\nolimits}%
 \expandafter\es@a\es@b sen tg arc\,sen arc\,cos arc\,tg & }
\def\spanishoperators{cotg cosec senh tgh }
%    \end{macrocode}
%
%    Now comes the text shorthands. They are grouped in
%    |\shorthandsspanish| and this style performs some
%    operations before the babel shortands are called.
%    The aims are to allow espression like |$a^{x'}$|
%    and to deactivate shorthands by making them of
%    category `other.' After providing a |\'i| shorthand,
%    the new macros are defined. 
%    
%    \begin{macrocode}
\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'{\i}}

\def\es@set@shorthand#1{%
 \expandafter\edef\csname es@savecat\string#1\endcsname
  {\the\catcode`#1}%
 \initiate@active@char{#1}%
 \catcode`#1=\csname es@savecat\string#1\endcsname\relax
 \if.#1\else
  \addto\es@restorelist{\es@restore{#1}}%
  \addto\es@select{\shorthandon{#1}}%
  \addto\shorthandsspanish{\es@activate{#1}}%
  \addto\es@shlist{#1}%
 \fi}

\def\es@use@shorthand{%
 \if@safe@actives
  \bbl@afterelse
  \string
 \else
  \bbl@afterfi
  {\ifx\thepage\relax
   \bbl@afterelse
   \string
  \else
   \bbl@afterfi
   \es@use@sh
  \fi}%
 \fi}

\def\es@use@sh#1{%
 \ifx\protect\@unexpandable@protect
  \bbl@afterelse
  \noexpand#1%
 \else%
  \bbl@afterfi
  \textormath
   {\csname active@char\string#1\endcsname}%
   {\csname normal@char\string#1\endcsname}%
 \fi}

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

\def\spanishdeactivate#1{%
 \@tfor\@tempa:=#1\do{\expandafter\es@spdeactivate\@tempa}}

\def\es@spdeactivate#1{%
 \if.#1%
  \mathcode`\.=\es@period@math\relax
  \begingroup\lccode`\~=`\.\lowercase{\endgroup\let~\es@period@code}%
 \else
  \begingroup
   \lccode`\~=`#1
   \lowercase{%
  \endgroup
  \expandafter\let\expandafter~%
   \csname normal@char\string#1\endcsname}%
  \catcode`#1=\csname es@savecat\string#1\endcsname\relax
 \fi}
%    \end{macrocode}
%
%    |\es@restore| is used in the list |\es@restorelist|, which in
%    turn restores all shorthands as defined by \babel. The latter
%    macros also has |\es@quoting|.
%
%    \begin{macrocode}
\def\es@restore#1{%
 \shorthandon{#1}%
 \begingroup
  \lccode`\~=`#1
  \lowercase{%
 \endgroup
 \bbl@deactivate{~}}}
%    \end{macrocode}
%
%    To selectively define the shorthands we have a couple of
%    macros, which defines a certain combination if the first
%    character has been activated as a shorthand. The second
%    one is intended for a few shorthands with an alternative
%    form.                                                      
%
%    \begin{macrocode}
\def\es@declare#1{%
 \@ifundefined{es@savecat\expandafter\string\@firstoftwo#1}%
  {\@gobble}%
  {\declare@shorthand{spanish}{#1}}}
\def\es@declarealt#1#2#3{%
 \es@declare{#1}{#3}%
 \es@declare{#2}{#3}}

\ifes@latex\else
 \def\@tabacckludge#1{\csname\string#1\endcsname}
\fi

\@ifundefined{add@accent}{\def\add@accent#1#2{\accent#1 #2}}{}
%    \end{macrocode}
%
%    Instead of redefining |\'|, we redefine the internal
%    macro for the OT1 encoding.
%
%    \begin{macrocode}
\ifes@latex
 \def\es@accent#1#2#3{%
  \expandafter\@text@composite
  \csname OT1\string#1\endcsname#3\@empty\@text@composite
  {\bbl@allowhyphens\add@accent{#2}{#3}\bbl@allowhyphens
   \setbox\@tempboxa\hbox{#3%
    \global\mathchardef\accent@spacefactor\spacefactor}%
   \spacefactor\accent@spacefactor}}
\else
 \def\es@accent#1#2#3{%
  \bbl@allowhyphens\add@accent{#2}{#3}\bbl@allowhyphens
  \spacefactor\sfcode`#3 }
\fi

\addto\shorthandsspanish{\languageshorthands{spanish}}%
\es@ifoption{noshorthands}{}{\es@set@shorthand{"}}
%    \end{macrocode}
%
%    We override the default |"| of babel, intended for german.
%
%    \begin{macrocode}
\def\es@umlaut#1{%
 \bbl@allowhyphens\add@accent{127}#1\bbl@allowhyphens
 \spacefactor\sfcode`#1 }

\addto\shorthandsspanish{%
 \babel@save\bbl@umlauta
 \let\bbl@umlauta\es@umlaut}
\let\noshorthandsspanish\relax

\ifes@latex
\addto\shorthandsspanish{%
 \expandafter\es@sdef\csname OT1\string\~\endcsname{\es@accent\~{126}}%
 \expandafter\es@sdef\csname OT1\string\'\endcsname{\es@accent\'{19}}}
\else
\addto\shorthandsspanish{%
 \es@sdef\~{\es@accent\~{126}}%
 \es@sdef\'#1{\if#1i\es@accent\'{19}\i\else\es@accent\'{19}{#1}\fi}}
\fi

\def\es@sptext@r#1#2{\es@sptext{#1#2}}
\es@declare{"a}{\sptext{a}}
\es@declare{"A}{\sptext{A}}
\es@declare{"o}{\sptext{o}}
\es@declare{"O}{\sptext{O}}
\es@declare{"e}{\protect\es@sptext@r{e}}
\es@declare{"E}{\protect\es@sptext@r{E}}
\es@declare{"u}{\"u}
\es@declare{"U}{\"U}
\es@declare{"i}{\"{\i}}
\es@declare{"I}{\"I}
\es@declare{"c}{\c{c}}
\es@declare{"C}{\c{C}}
\es@declare{"<}{\guillemotleft{}}
\es@declare{">}{\guillemotright{}}
\def\es@chf{\char\hyphenchar\font}
\es@declare{"-}{\bbl@allowhyphens\-\bbl@allowhyphens}
\es@declare{"=}{\bbl@allowhyphens\es@chf\hskip\z@skip}
\es@declare{"~}
 {\bbl@allowhyphens
  \discretionary{\es@chf}{\es@chf}{\es@chf}%
  \bbl@allowhyphens}
\es@declare{"r}
 {\bbl@allowhyphens
  \discretionary{\es@chf}{}{r}%
  \bbl@allowhyphens}
\es@declare{"R}
 {\bbl@allowhyphens
  \discretionary{\es@chf}{}{R}%
  \bbl@allowhyphens}
\es@declare{"y}
 {\@ifundefined{scalebox}%
   {\ensuremath{\tau}}%
   {\raisebox{1ex}{\scalebox{-1}{\resizebox{.45em}{1ex}{2}}}}}
\es@declare{""}{\hskip\z@skip}
\es@declare{"/}
 {\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}
\es@declare{"?}
 {\setbox\z@\hbox{?`}%
  \leavevmode\raise\dp\z@\box\z@}
\es@declare{"!}
 {\setbox\z@\hbox{!`}%
  \leavevmode\raise\dp\z@\box\z@}

\def\spanishdecimal#1{\def\es@decimal{{#1}}}
\def\decimalcomma{\spanishdecimal{,}}
\def\decimalpoint{\spanishdecimal{.}}
\decimalcomma
\es@ifoption{nodecimaldot}{}
 {\AtBeginDocument{\bgroup\@fileswfalse}%
  \begingroup\lccode`\~=`\.\lowercase{\endgroup
    \let\es@period@code~%
    \es@set@shorthand{.}%
    \let~\es@period@code}%
  \AtBeginDocument{\egroup}%
  \@namedef{normal@char\string.}{%
   \@ifnextchar\egroup
    {\es@period@code}%
    {\csname active@char\string.\endcsname}}%
  \declare@shorthand{system}{.}{\es@period@code}%
  \addto\shorthandsspanish{%
   \babel@savevariable{\mathcode`\.}%
   \edef\es@period@math{\the\mathcode`\.}%
   \babel@save\es@period@code
   \ifnum\es@period@math="8000
    \begingroup\lccode`\~=`\.\lowercase{\endgroup\let\es@period@code~}%
   \else
    \mathchardef\es@period@code\es@period@math\relax
    \mathcode`\.="8000 %
   \fi
   \begingroup\lccode`\~=`\.\lowercase{\endgroup\babel@save~}%
   \es@activate{.}}%
  \def\es@a#1{\es@declare{.#1}{\es@decimal#1}}%
  \es@a1\es@a2\es@a3\es@a4\es@a5\es@a6\es@a7\es@a8\es@a9\es@a0}


\es@ifoption{notilde}{}{\es@set@shorthand{~}}
\def\deactivatetilden{%
 \expandafter\let\csname spanish@sh@\string~@n@\endcsname\relax
 \expandafter\let\csname spanish@sh@\string~@N@\endcsname\relax}
\es@ifoption{tilden}
 {\es@declare{~n}{\~n}%
  \es@declare{~N}{\~N}}
 {\let\deactivatetilden\relax}
\es@declarealt{~-}{"+}{%
 \leavevmode
 \bgroup
 \let\@sptoken\es@dashes % Changes \@ifnextchar behaviour
 \@ifnextchar-%       
  {\es@dashes}%
  {\hbox{\es@chf}\egroup}}
\def\es@dashes-{%
 \@ifnextchar-%
  {\bbl@allowhyphens\hbox{---}\bbl@allowhyphens\egroup\@gobble}%
  {\bbl@allowhyphens\hbox{--}\bbl@allowhyphens\egroup}}

\es@ifoption{noquoting}%
 {\let\es@quoting\relax
 \let\activatequoting\relax
 \let\deactivatequoting\relax}
 {\@ifundefined{XML@catcodes}%
 {\es@set@shorthand{<}%
  \es@set@shorthand{>}%
  \declare@shorthand{system}{<}{\csname normal@char\string<\endcsname}%
  \declare@shorthand{system}{>}{\csname normal@char\string>\endcsname}%
  \addto\es@restorelist{\es@quoting}%
  \addto\es@select{\es@quoting}%
  \ifes@latex
   \AtBeginDocument{%
    \es@quoting
    \if@filesw
     \immediate\write\@mainaux{\string\@nameuse{es@quoting}}%
    \fi}%
  \fi
  \def\activatequoting{%
   \shorthandon{<>}%
   \let\es@quoting\activatequoting}%
  \def\deactivatequoting{%
   \shorthandoff{<>}%
   \let\es@quoting\deactivatequoting}}{}}

\es@declarealt{<<}{"`}{\begin{quoting}}
\es@declarealt{>>}{"'}{\end{quoting}}
%    \end{macrocode}
%
%    Acute accent shorthands 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
%    it's always executed.
%
% \changes{spanish~5.0e}{2008/07/06}{Two acutes in a row should be
%    turned into a double right quote}
% \changes{spanish~5.0g}{2008/07/20}{Fixed bad kerning before two
%    acutes}
%
%    \begin{macrocode}
\begingroup
\catcode`\'=12
\gdef\es@activeacute{%
 \es@set@shorthand{'}%
 \def\es@a##1{\es@declare{'##1}{\@tabacckludge'##1}}%
 \es@a a\es@a e\es@a i\es@a o\es@a u%
 \es@a A\es@a E\es@a I\es@a O\es@a U%
 \es@declare{'n}{\~n}%
 \es@declare{'N}{\~N}%
 \es@declare{''}{''}%
%    \end{macrocode}
%
%    But \textsf{spanish} allows two category codes for |'|,
%    so both should be taken into account in \cs{bbl@pr@m@s}.
%    
%    \begin{macrocode}
 \let\es@pr@m@s\bbl@pr@m@s
 \def\bbl@pr@m@s{%
  \ifx'\@let@token
   \bbl@afterelse
   \pr@@@s
  \else
   \bbl@afterfi
   \es@pr@m@s
  \fi}%
 \let\es@activeacute\relax}
\endgroup

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

\ifes@latex
\es@enumerate{1.}{a)}{1)}{a$'$}
\def\spanishdashitems{\es@itemize{---}{---}{---}{---}}
\def\spanishsymbitems{%
 \es@itemize
  {\leavevmode\hbox to 1.2ex
   {\hss\vrule height .9ex width .7ex depth -.2ex\hss}}%
  {\textbullet}%
  {$\m@th\circ$}%
  {$\m@th\diamond$}}
\def\spanishsignitems{%
 \es@itemize{\textbullet}%
  {$\m@th\circ$}%
  {$\m@th\diamond$}%
  {$\m@th\triangleright$}}
\spanishsymbitems
\def\es@enumdef#1#2#3\@@{%
 \if#21%
  \@namedef{theenum#1}{\arabic{enum#1}}%
 \else\if#2a%
  \@namedef{theenum#1}{\emph{\alph{enum#1}}}%
 \else\if#2A%
  \@namedef{theenum#1}{\Alph{enum#1}}%
 \else\if#2i%
  \@namedef{theenum#1}{\roman{enum#1}}%
 \else\if#2I%
  \@namedef{theenum#1}{\Roman{enum#1}}%
 \else\if#2o%
  \@namedef{theenum#1}{\arabic{enum#1}\sptext{o}}%
 \fi\fi\fi\fi\fi\fi
 \toks@\expandafter{\csname theenum#1\endcsname}%
 \expandafter\edef\csname labelenum#1\endcsname
   {\noexpand\es@listquot\the\toks@#3}}
\def\es@guillemot#1#2{%
 \ifmmode#1%
 \else
  \save@sf@q{\penalty\@M
  \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
   \char#2 \kern-0.19em\char#2 }}%
 \fi}
\def\layoutspanish{%
 \let\layoutspanish\@empty
 \DeclareTextCommand{\guillemotleft}{OT1}{\es@guillemot\ll{40}}%
 \DeclareTextCommand{\guillemotright}{OT1}{\es@guillemot\gg{41}}%
 \def\@fnsymbol##1%
  {\ifcase##1\or*\or**\or***\or****\or
   *****\or******\else\@ctrerr\fi}%
 \def\@alph##1%
  {\ifcase##1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
   k\or l\or m\or n\or \~n\or o\or p\or q\or r\or s\or t\or u\or v\or
   w\or x\or y\or z\else\@ctrerr\fi}%
 \def\@Alph##1%
  {\ifcase##1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
   K\or L\or M\or N\or \~N\or O\or P\or Q\or R\or S\or T\or U\or V\or
   W\or X\or Y\or Z\else\@ctrerr\fi}}

\es@optlayout{noenumerate}{%
 \def\es@enumerate#1#2#3#4{%
  \es@enumdef{i}#1\@empty\@empty\@@
  \es@enumdef{ii}#2\@empty\@empty\@@
  \es@enumdef{iii}#3\@empty\@empty\@@
  \es@enumdef{iv}#4\@empty\@empty\@@}%
  \def\p@enumii{\theenumi}%
  \def\p@enumiii{\p@enumii\theenumii}%
  \def\p@enumiv{\p@enumiii\theenumiii}%
  \expandafter\es@enumerate\es@enum}
\es@optlayout{noitemize}{%
 \def\es@itemize#1#2#3#4{%
  \def\labelitemi{\es@listquot#1}%
  \def\labelitemii{\es@listquot#2}%
  \def\labelitemiii{\es@listquot#3}%
  \def\labelitemiv{\es@listquot#4}}%
  \expandafter\es@itemize\es@item}
\let\esromanindex\@secondoftwo
\es@ifoption{ucroman}
 {\def\es@romandef{%
   \def\esromanindex##1##2{##1{\uppercase{##2}}}%
   \def\@roman{\@Roman}}}
 {\def\es@romandef{%
   \def\esromanindex##1##2{##1{\es@scroman{##2}}}%
   \def\@roman##1{\es@roman{\number##1}}%
   \def\es@roman##1{\es@scroman{\romannumeral##1}}%
   \DeclareRobustCommand\es@scroman{\es@xlsc\uppercase\@firstofone}}}
\es@optlayout{lcroman}{\es@romandef}
\newcommand\spanishlcroman{\def\@roman##1{\romannumeral##1}}
\newcommand\spanishucroman{\def\@roman{\@Roman}}
\newcommand\spanishscroman{\def\@roman##1{\es@roman{\romannumeral##1}}}
\es@optlayout{noindentfirst}{%
 \let\@afterindentfalse\@afterindenttrue
 \@afterindenttrue}
\es@optlayout{nosectiondot}{%
 \def\@seccntformat#1{\csname the#1\endcsname.\quad}%
 \def\numberline#1{\hb@xt@\@tempdima{#1\if&#1&\else.\fi\hfil}}}
\es@ifoption{nolayout}{\let\layoutspanish\relax}{}
\es@ifoption{sloppy}{\let\textspanish\relax\let\mathspanish\relax}{}
\es@ifoption{delayed}{}{\def\es@layoutspanish{\layoutspanish}}
\es@ifoption{preindex}{\AtEndOfPackage{\RequirePackage{romanidx}}}{}
%    \end{macrocode}
%    
%    We need to execute the following code when babel has been
%    run, in order to see if |spanish| is the main language.
%    
%    \begin{macrocode}
\AtEndOfPackage{%
\let\es@activeacute\@undefined
\def\bbl@tempa{spanish}%
\ifx\bbl@main@language\bbl@tempa
 \@nameuse{es@layoutspanish}%
 \addto\es@select{%
  \@ifstar{\PackageError{spanish}%
   {Old syntax--use es-nolayout}%
   {If you don't want changes in layout\MessageBreak
   use the es-nolayout package option}}%
   {}}%
 \AtBeginDocument{\layoutspanish}%
\fi
\selectspanish}
\fi
%    \end{macrocode}
%    
%    After restoring the catcode of |~| and setting the minimal
%    values for hyphenation, the |.ldf| is finished.
%
%    \begin{macrocode}
\es@savedcatcodes
\providehyphenmins{\CurrentOption}{\tw@\tw@}
\ifes@latex\else
 \es@select
\fi
\ldf@finish{spanish}
\csname activatequoting\endcsname
%</code>
%    \end{macrocode}
%    That's all in the main file. 
%
%    The |spanish| option writes a macro in the page field of
%    \textit{MakeIndex} in entries with small caps number, and they
%    are rejected. This program is a preprocessor which moves this
%    macro to the entry field. It can be called from the main 
%    document as a package or with the package option |es-preindex|.
%
%    \begin{macrocode}
%<*indexes>
\makeatletter

\@ifundefined{es@idxfile}
  {\def\spanishindexchars#1#2#3{%
     \edef\es@encap{`\expandafter\noexpand\csname\string#1\endcsname}%
     \edef\es@openrange{`\expandafter\noexpand\csname\string#2\endcsname}%
     \edef\es@closerange{`\expandafter\noexpand\csname\string#3\endcsname}}%
   \spanishindexchars{|}{(}{)}%
   \ifx\documentclass\@twoclasseserror
      \edef\es@idxfile{\jobname}%
      \AtEndDocument{%
        \addto\@defaultsubs{%
          \immediate\closeout\@indexfile
          \input{romanidx.sty}}}%
      \expandafter\endinput
   \fi}{}

\newcount\es@converted
\newcount\es@processed

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

\@ifundefined{es@idxfile}
  {\typein[\answer]{^^JArchivo que convertir^^J%
   (extension por omision .idx):}}
  {\let\answer\es@idxfile}

\@expandtwoargs\in@{.}{\answer}
\ifin@
  \edef\es@input@file{\expandafter\es@split@file\answer\@@}
  \edef\es@input@ext{\expandafter\es@split@ext\answer\@@}
\else
  \edef\es@input@file{\answer}
  \def\es@input@ext{idx}
\fi

\@ifundefined{es@idxfile}
  {\typein[\answer]{^^JArchivo de destino^^J%
     (archivo por omision: \es@input@file.eix,^^J%
      extension por omision .eix):}}
  {\let\answer\es@idxfile}
\ifx\answer\@empty
  \edef\es@output{\es@input@file.eix}
\else
  \@expandtwoargs\in@{.}{\answer}
  \ifin@
     \edef\es@output{\answer}
  \else
     \edef\es@output{\answer.eix}
  \fi
\fi

\@ifundefined{es@idxfile}
  {\typein[\answer]{%
   ^^J?Se ha usado algun esquema especial de controles^^J%
   de MakeIndex para encap, open_range o close_range?^^J%
   [s/n] (n por omision)}}
  {\def\answer{n}}

\if s\answer
  \typein[\answer]{^^JCaracter para 'encap'^^J%
    (\string| por omision)}
  \ifx\answer\@empty\else
    \edef\es@encap{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
  \typein[\answer]{^^JCaracter para 'open_range'^^J%
    (\string( por omision)}
  \ifx\answer\@empty\else
    \edef\es@openrange{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
  \typein[\answer]{^^JCaracter para 'close_range'^^J%
    (\string) por omision)}
  \ifx\answer\@empty\else
    \edef\es@closerange{%
      `\expandafter\noexpand\csname\expandafter\string\answer\endcsname}
  \fi
\fi

\newwrite\es@indexfile
\immediate\openout\es@indexfile=\es@output

\newif\ifes@encapsulated

\def\es@scroman#1{#1}
\edef\es@slash{\expandafter\@gobble\string\\}

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

\begingroup

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

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

\lowercase{
\gdef\es@idxentry#1{%
  \in@{\es@scroman}{#1}%
  \ifin@
    \advance\es@converted\@ne
    \immediate\write\es@indexfile{%
      \string\indexentry{\es@b|\ifes@encapsulated\es@p\fi esromanindex%
        {\ifx\es@a\@empty\else\es@slash\es@a\fi}}{#1}}%
  \else
    \immediate\write\es@indexfile{%
      \string\indexentry{\es@b\ifes@encapsulated|\es@p\es@a\fi}{#1}}%
  \fi}
}

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

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

\endgroup

\input \es@input@file.\es@input@ext

\immediate\closeout\es@indexfile

\typeout{*****************}
\typeout{Se ha procesado: \es@input@file.\es@input@ext }
\typeout{Lineas leidas: \the\es@processed}
\typeout{Lineas convertidas: \the\es@converted}
\typeout{Resultado en: \es@output}
\ifnum\es@converted>\z@
  \typeout{Genere el indice a partir de ese archivo}
\else
  \typeout{No se ha convertido nada. Se puede generar}
  \typeout{el .ind  directamente de \es@input@file.\es@input@ext}
\fi
\typeout{*****************}

\@ifundefined{es@sdef}{\@@end}{}

\endinput
%</indexes>
%    \end{macrocode}
%
% \Finale
%
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
\endinput





