summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/gaceta
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-02-21 18:11:30 +0000
committerKarl Berry <karl@freefriends.org>2008-02-21 18:11:30 +0000
commitf1deab4464e3af2576a3d41b7b0944324c15fc14 (patch)
treecc9fb2b08bae55cef9f0f7643c1affa14b0f92cc /Master/texmf-dist/tex/latex/gaceta
parentbf6e239c11b0086a5d3f19a4f218b606bf870cd0 (diff)
new package gaceta for spanish journal (19feb08)
git-svn-id: svn://tug.org/texlive/trunk@6703 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/gaceta')
-rw-r--r--Master/texmf-dist/tex/latex/gaceta/gaceta.cls1589
1 files changed, 1589 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/gaceta/gaceta.cls b/Master/texmf-dist/tex/latex/gaceta/gaceta.cls
new file mode 100644
index 00000000000..35912f9b745
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/gaceta/gaceta.cls
@@ -0,0 +1,1589 @@
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% filename = "gaceta.cls",
+%%% version = "1.0",
+%%% date = "2008/02/13",
+%%% time = "00:00:00 EDT",
+%%% author = "Juan L. Varona",
+%%% address = "Dpto. Matem\'aticas y Computaci\'on,
+%%% Universidad de La Rioja,
+%%% 26004 Logro\~no, Spain",
+%%% email = "jvarona@unirioja.es",
+%%% url = "http://www.unirioja.es/cu/jvarona/",
+%%% license = "LaTeX Project Public License (LPPL), any version",
+%%% abstract = "This is the gaceta LaTeX class.
+%%% It is intended to write papers for
+%%% <<La Gaceta de la Real Sociedad Matem\'atica
+%%% Espa\~nola>>, a journal of the Real Sociedad
+%%% Matem\'atica Esp\~nola, http://www.rsme.es.
+%%% This class is based on article, with many
+%%% customizations and additions.
+%%% Moreover, the packages
+%%% geometry, babel (with spanish), url,
+%%% amsmath, amsthm, and amssymb
+%%% are always loaded".
+%%% }
+%%% ====================================================================
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Clase para La Gaceta de la RSME, ver. 1.0 %
+% %
+% Real Sociedad Matem\'atica Esp\~nola %
+% http://www.rsme.es %
+% %
+% Juan Luis Varona Malumbres %
+% email: jvarona@unirioja.es %
+% URL: http://www.unirioja.es/cu/jvarona/ %
+% %
+% Esto es una clase para LaTeX2e %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DEFINICIONES para La Gaceta y su formato
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% OPTIONS: "autocontact".
+%% By default, it is not loaded.
+
+% ---------------------- IDENTIFICACION -------------------------------%
+\ProvidesFile{gaceta.cls}[2008/02/13, %
+ Clase para La Gaceta de la RSME, ver. 1.0]
+\typeout{Clase para La Gaceta de la RSME, ver. 1.0, <2008/02/13>.}
+
+% ---------------------- CODIGO INICIAL -------------------------------%
+% - EN ARTICULOS SIN AUTORES (rese\~nas, ...) NO HAY \contact
+% Y NO TIENE QUE QUEJARSE. Lo manejo con opciones:
+\newif\ifautocontact
+ \autocontactfalse
+% Para no complicarles la vida si no lo quieren usar as\'{\i}, lo dejo
+% como "false" por defecto.
+
+% Defino esto con idea de impedir usar 11pt o 12pt en article
+% (y evitar as\'{\i} componer una art\'{\i}culo con letra mayor),
+% salvo que lo autoricemos expresamente con la opci\'on
+% "eleveneallowed" o "twelveallowed":
+\newif\ifelevenallowed
+ \elevenallowedfalse
+\newif\iftwelveallowed
+ \twelveallowedfalse
+
+% ---------------------- DECLARACION DE OPCIONES ----------------------%
+
+\DeclareOption{autocontact}{\autocontacttrue}
+
+\DeclareOption{allow11pt}{\elevenallowedtrue}
+\DeclareOption{allow12pt}{\twelveallowedtrue}
+
+\newcommand\@ptsizegaceta{}
+\DeclareOption{10pt}{\renewcommand\@ptsizegaceta{0}}
+\DeclareOption{11pt}{\renewcommand\@ptsizegaceta{1}%
+ \PassOptionsToClass{11pt}{article}}
+\DeclareOption{12pt}{\renewcommand\@ptsizegaceta{2}%
+ \PassOptionsToClass{12pt}{article}}
+
+% ---------------------- EJECUCION DE OPCIONES ------------------------%
+\ProcessOptions
+\ifautocontact%
+ \autocontacttrue%
+\fi
+
+\ifelevenallowed%
+\else % La opci\'on "11pt" de article hace \renewcommand\@ptsize{1}
+ \if\@ptsizegaceta1\ClassError{gaceta}{The option 11pt is forbidden by the gaceta class.\MessageBreak}%
+ {If you actually want to use it, use the options allow11pt and 11pt.}\fi
+\fi
+
+\iftwelveallowed%
+\else % La opci\'on "12pt" de article hace \renewcommand\@ptsize{2}
+ \if\@ptsizegaceta2\ClassError{gaceta}{The option 12pt is forbidden by the gaceta class.\MessageBreak}%
+ {If you actually want to use it, use the options allow12pt and 12pt.}\fi
+\fi
+
+% ---------------------- CARGA LA CLASE ARTICLE -----------------------%
+
+%% IMPORTANTE: La \'unica diferencia esencial para que este archivo
+%% hubiera sido un estilo
+%% (para usar con \documentclass{article} \usepackage{gaceta})
+%% en vez de una clase aut\'onoma
+%% (y usarlo como \documentclass{gaceta}) es esta:
+\LoadClass{article}
+%% (Aparte de eso, en la clase hay que hacer algo distinto el tratamiento de 10pt y 11pt:
+%% - Defino \newcommand\@ptsizegaceta{} (en article hay un \newcommand\@ptsizegaceta{}),
+%% - Hago los correspondientes \DeclareOption para 10pt, 11pt y 12pt.
+%% - Uso \if\@ptsizegaceta en vez de \if\@ptsize para ver si permito 11pt y 12pt adrede.
+%% - En los mensajes de error uso \ClassError en vez \PackageError)
+
+% ---------------------- CODIGO PRINCIPAL -----------------------------%
+
+%% ESTAS COSAS, y el uso de crop, HABR\'IA QUE AJUSTARLAS CON LA IMPRENTA
+\RequirePackage{geometry}
+\geometry{twoside,
+ paperheight = 24.0cm,
+ paperwidth = 17.0cm,
+ columnsep = 1.0cm, % Separaci\'on cuando haya dos columnas
+ textheight = 19.0cm,
+ textwidth = 12.8cm,
+ top = 3.0cm
+}
+
+%%% M\'AS PAR\'AMETROS DE geometry QUE PODR\'IA INTERESAR CAMBIAR:
+% lmargin=1cm, % (margen izquierdo p\'aginas impares)
+% % el anterior se convierte en "rmargin" en las pares
+% tmargin=1cm, % (margen superior hasta el texto: 2.5+1.5+\headheight)
+% headsep=1cm, % (espacio entre el "header" y el texto)
+% marginparwidth=1cm,
+% marginparsep=4mm %% Esto es un poquito m\'as de lo que hay por defecto.
+
+
+\def\journame#1{\def\thejourname{#1}}
+\def\yearofpublication#1{\def\theyearofpublication{#1}}
+\def\volume#1{\def\thevolume{#1}}
+\def\issuenumber#1{\def\theissuenumber{#1}}
+
+\journame{La Gaceta de la RSME}
+\yearofpublication{xxxx}
+\volume{xx}
+\issuenumber{x}
+
+\def\shortjourname#1{\def\theshortjourname{#1}}
+\shortjourname{La Gaceta}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Importante:
+% TODO LO RELACIONADO CON LETRAS EN La Gaceta
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% La Gaceta la vamos a hacer as\'{\i}:
+
+%---------------------------
+% \usepackage[T1]{fontenc}
+% \usepackage{lmodern}
+% \usepackage[latin1]{inputenc} % [en caso necesario]
+% \usepackage[spanish]{babel}
+%---------------------------
+
+%%% Pero prefiero no cargar [T1]{fontenc} ni {lmodern}
+%%% en el estilo, pues a mucha gente con distribuciones
+%%% de TeX antiguas les puede dar problemas. En consecuencia,
+%%% es mejor cargarlo en cada documento.
+%%% En cuanto a [latin1]{inputenc}, no siempre es necesario;
+%%% y, adam\'as, existen otros. O sea que mejor no fijarlo
+%%% tampoco en el estilo.
+
+%%% Lo que s\'{\i} fijo en el estilo gaceta es spanish, pues,
+%%% adem\'as, vamos a personalizar aqu\'{\i} algunas cosas.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TEXTO EN ESPA\~NOL Y CORTES DE PALABRA EN ESPA\~NOL
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage[spanish]{babel}
+
+\hyphenation{RSME} % <--- Para evitar que lo corte como RS-ME (!` lo hac\'{\i}a !)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% OTROS PAQUETES QUE CARGAMOS SIEMPRE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{graphicx}
+%\usepackage{wrapfig} % <- Si se quiere usar, cargarlo en cada archivo
+
+\RequirePackage{url}
+%% Permite usar cosas del estilo
+%% \url{http://www.unirioja.es/cu/jvarona/hola.html}
+%% y que pueda cortar l\'{\i}neas. Adem\'as, no se fastidian
+%% las p\'aginas que tienen una "~" (tilde),
+%% o las direcciones que tienen una "_" (gui\'on bajo).
+
+
+\RequirePackage{amsmath, amsthm} % (amsmath y amsthm lo uso en este estilo)
+\RequirePackage{amssymb} % <- Aunque no siempre es necesario, lo dejo (incluye \mathbb)
+
+%%% \allowdisplaybreaks es una orden de amsmath que permite cortes de
+%%% p\'agina dentro de una f\'ormula de varias l\'{\i}neas (align, multline, gather, ...)
+\allowdisplaybreaks[3] %%% Escala de 1 (permite algo) a 4 (ninguna traba para cortar).
+%%% Si en alg\'un sitio queremos impedir un posible corte, usar \\* en vez de \\
+
+\date{} % Por defecto, no ponemos la fecha
+
+%------------------------------------------------------------
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ESPACIADO DEL DOCUMENTO Y ``PENALTIES''
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Distancia extra entre p\'arrafos):
+\parskip=0.5pt plus 1.0pt minus 0.5pt % Default: \parskip=0.0pt plus 1.0pt
+% Si en un art\'{\i}culo lo modificamos ligeramente,
+% se puede cambiar un poco el aspecto general, haci\'endolo
+% algo m\'as largo o m\'as corto. Eso logra a veces una p\'agina m\'as
+% o menos (o que las direcci\'on del autor/autores no queden sueltas en
+% una p\'agina). Y, en la pr\'actica, el cambio de espaciado ni se nota.
+%%%%%% -------> IMPORTANTE: Es un truco muy \'util <-------
+
+% A\~NADO UN POCO DE ESPACIO (y bastante glue) ENTRE EL TEXTO
+% Y LA L\'INEA DE LAS "footnotes".
+\addtolength{\skip\footins}{1pt plus 5pt minus 1pt}
+% (Lo explica en la secci\'on 3.2.2, p. 112, del LaTeX Companion, 2nd ed.)
+
+% Aumento un 50% los penalties para l\'{\i}neas viudas y hu\'erfanas,
+% pues las que vienen en "latex.ltx" son demasiado permisivas:
+\clubpenalty=225 % Default = 150
+\widowpenalty=225 % Default = 150
+\displaywidowpenalty=75 % Default = 50
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ASPECTO DE LOS T\'ITULOS DE SECCIONES, SUBSECCIONES, ETC.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%-------------------------
+%% Los originales de article.cls:
+%\newcommand\section{\@startsection{section}{1}{\z@}%
+% {-3.5ex \@plus -1ex \@minus -.2ex}%
+% {2.3ex \@plus.2ex}%
+% {\normalfont\Large\bfseries}}
+%\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
+% {-3.25ex\@plus -1ex \@minus -.2ex}%
+% {1.5ex \@plus .2ex}%
+% {\normalfont\large\bfseries}}
+%\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+% {-3.25ex\@plus -1ex \@minus -.2ex}%
+% {1.5ex \@plus .2ex}%
+% {\normalfont\normalsize\bfseries}}
+%\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+% {3.25ex \@plus1ex \@minus.2ex}%
+% {-1em}%
+% {\normalfont\normalsize\bfseries}}
+%\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+% {3.25ex \@plus1ex \@minus .2ex}%
+% {-1em}%
+% {\normalfont\normalsize\bfseries}}
+%-------------------------
+
+% Redefiniciones:
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\large\scshape}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\scshape}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\scshape}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\scshape}}
+\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\scshape}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ESPACIADO RELACIONADO CON LISTAS E ITEMIZES
+% (para hacerlas m\'as compactas)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%% Default:
+%% \itemsep = 4.5pt plus 2.0pt minus 1.0pt (para article con 11pt)
+%% \parsep = 4.5pt plus 2.0pt minus 1.0pt (para article con 11pt)
+%% Y ambos ser\'{\i}an 4.0pt plus 2.0pt minus 1.0pt para article con 10pt
+%%
+%% Modificar directamente \itemsep no vale para nada,
+%% pues lo repone localmente cada \itemize.
+%% Lo que hay que hacer es cambiar \@listi y similares, que est\'an definidos en size10.clo.
+\setlength\partopsep{1.5\p@ \@plus 0.75\p@ \@minus 0.75\p@} % Original: 2\p@ \@plus 1\p@ \@minus 1\p@
+\def\@listi{\leftmargin\leftmargini
+ \parsep 2\p@ \@plus1\p@ \@minus0.75\p@ % Original: 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 4.5\p@ \@plus1.5\p@ \@minus2\p@ % Original: 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep2\p@ \@plus1\p@ \@minus0.75\p@} % Original: 4\p@ \@plus2\p@ \@minus\p@
+\let\@listI\@listi
+\@listi
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus1\p@ \@minus0.75\p@ % Original: 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 1.25\p@ \@plus0.75\p@ \@minus0.5\p@ % Original: 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 1.5\p@ \@plus0.5\p@\@minus0.25\p@ % Original: 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus0.25\p@ % Original: \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+% (\@listiv y siguientes no hace falta que los toque, pues no a\~naden separaciones)
+% Esto es posible que sirva en alg\'un sitio para algo:
+\parsep = 2.0pt plus 1.0pt minus 0.75pt
+\topsep = 4.5pt plus 1.5pt minus 2.0pt % default: 8.0pt plus 2.0pt minus 4.0pt
+\partopsep = 1.5pt plus 0.75pt minus 0.75pt % default: 2.0pt plus 1.0pt minus 1.0pt
+% Por si acaso se usa en alg\'un sitio, dejo tambi\'en este cambio glabal:
+\itemsep = 2.0pt plus 1.0pt minus 0.75pt % <--- Creo que modificar esto no vale para nada
+% (pero a lo mejor alguien puede usar \itemsep en alg\'un sitio)
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% COLOCACI\'ON DE OBJETOS FLOTANTES
+%
+% IMPORTANTE: Uso las asignaciones para los "floats" de amsart.cls,
+% que son mucho m\'as permisivas que las de article.cls.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{4}
+\setcounter{dbltopnumber}{4}
+\renewcommand{\topfraction}{.97}
+\renewcommand{\bottomfraction}{.97}
+\renewcommand{\textfraction}{.03}
+\renewcommand{\floatpagefraction}{.9}
+\renewcommand{\dbltopfraction}{.97}
+\renewcommand{\dblfloatpagefraction}{.9}
+\setlength{\floatsep}{12pt plus 6pt minus 4pt}
+\setlength{\textfloatsep}{15pt plus 8pt minus 5pt}
+\setlength{\intextsep}{12pt plus 6pt minus 4pt}
+\setlength{\dblfloatsep}{12pt plus 6pt minus 4pt}
+\setlength{\dbltextfloatsep}{15pt plus 8pt minus 5pt}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TEOREMAS, PROPOSICIONES, DEMOSTRACIONES, ...
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Se usa \usepacage{amsthm}, ya cargado.
+% Prefiero dejarlo cargado (en lugar de que
+% un usuario lo cargue o no), para que todos
+% tengan unificado el estilo.
+% Adem\'as, como quiero modificar el tipo de letra
+% de "Teorema" y similares para qeu salga en versalitas,
+% me basta hacerlo sobre la definici\'on de amsthm.
+
+%%% Ejemplos de uso (pero no dejarlo aqu\'{\i} activo)
+%\theoremstyle{definition}
+%\newtheorem{definicion}{Definici\'on}
+
+%\theoremstyle{plain}
+%\newtheorem{lema}[definicion]{Lema}
+%\newtheorem{teorema}[definicion]{Teorema}
+%\newtheorem{proposicion}[definicion]{Proposici\'on}
+%\newtheorem{corolario}[definicion]{Corolario}
+
+%\theoremstyle{remark}
+%\newtheorem{nota}[definicion]{Nota}
+%\newtheorem{ejemplo}[definicion]{Ejemplo}
+
+%----------------------
+%%% PARA PONER "TEOREMA ...", ETC, EN SMALLCAPS.
+% Original de amsthm:
+% \thm@headfont{\bfseries}
+% Redefinici\'on:
+\thm@headfont{\scshape}
+%----------------------
+
+%----------------------
+%%% PARA PONER "PROOF" EN SMALLCAPS
+% (sin amsthm, este entorno no existir\'{\i}a)
+% Original de amsthm:
+%\newenvironment{proof}[1][\proofname]{\par
+% \pushQED{\qed}%
+% \normalfont \topsep6\p@\@plus6\p@\relax
+% \trivlist
+% \item[\hskip\labelsep
+% \itshape
+% #1\@addpunct{.}]\ignorespaces
+%}{%
+% \popQED\endtrivlist\@endpefalse
+%}
+% Redefinici\'on:
+\renewenvironment{proof}[1][\proofname]{\par
+ \pushQED{\qed}%
+ \normalfont \topsep6\p@\@plus6\p@\relax
+ \trivlist
+ \item[\hskip\labelsep
+ \scshape
+ #1\@addpunct{.}]\ignorespaces
+}{%
+ \popQED\endtrivlist\@endpefalse
+}
+%----------------------
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% "Captions" CON LETRA \small Y ESTRECHOS
+% (Adaptado de la secci\'on 6.5, p. 307, del LaTeX Companion, 2nd ed.)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Redefino el \@makecaption de article.cls.
+%% Tambi\'en se podr\'{\i}a haber hecho con el paquete "caption".
+
+% Espacio de margen que voy a usar en los caption habitalmente
+% (cuando no estoy en algo m\'as estrecho que la mancha de
+% texto normal, como pudiera ser una columna o una wrapfigure):
+\newdimen\captionmargin
+\setlength\captionmargin{15pt}
+
+% En sitios estrechos, no dejo margen, salvo que quiera
+% forzarlo, y por eso preveo esta variable, por si se
+% quiere controlar desde alg\'un archivo .tex:
+\newdimen\forcedcaptionmargin
+\setlength\forcedcaptionmargin{0pt}
+
+% El \textwidth es fijo.
+% El \hsize refleja el ancho del sitio que latex tiene en
+% ese momento para escribir (ya sea una columna, una
+% "wrapfigure", etc.)
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \ifdim\hsize<\textwidth % <- Puesto JL
+ \setlength{\leftskip}{\forcedcaptionmargin}% % <- Puesto JL
+ \setlength{\rightskip}{\forcedcaptionmargin}% % <- Puesto JL
+ \else % <- Puesto JL
+ \setlength{\leftskip}{\captionmargin}% % <- Puesto JL
+ \setlength{\rightskip}{\captionmargin}% % <- Puesto JL
+ \fi % <- Puesto JL
+ \sbox\@tempboxa{\small #1: #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ \small #1: #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+
+%% Defino un \pseudocaption, que modo sea como el \caption (con el mismo
+%% y el tipo de letra pero sin poner "Figura" (o "Cuadro") y el n\'umero.
+
+% Adaptado del \caption (que llama a \@caption) de latex.ltx.
+% El \begingroup-\endgroup sirve para para hacer el cambio de anchura local.
+% El \nobreak lo pongo por si el \psudocaption se usa, no en un "figure"
+% o "table", sino simplemente en un "\begin{center}-\end{center}"
+% (aunque es posible que lo de los "minipage" que salen por en estas
+% definiciones ya impidan esa posibldad, no s\'e...).
+\def\pseudocaption#1{\par\nobreak\begingroup\@parboxrestore
+ \if@minipage
+ \@setminipage
+ \fi\@makepseudocaption{#1}\endgroup}
+
+\long\def\@makepseudocaption#1{%
+ \vskip\abovecaptionskip
+ \ifdim\hsize<\textwidth % <- Puesto JL
+ \setlength{\leftskip}{\forcedcaptionmargin}% % <- Puesto JL
+ \setlength{\rightskip}{\forcedcaptionmargin}% % <- Puesto JL
+ \else % <- Puesto JL
+ \setlength{\leftskip}{\captionmargin}% % <- Puesto JL
+ \setlength{\rightskip}{\captionmargin}% % <- Puesto JL
+ \fi % <- Puesto JL
+ \sbox\@tempboxa{\small #1}%
+ \ifdim \wd\@tempboxa >\hsize
+ \small #1\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi%
+ \vskip\belowcaptionskip}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% AUTOMATISMO PARA PONER LA DIRECCI\'ON, EMAIL Y P\'AGINA WEB
+% DEL AUTOR (O AUTORES) AL FINAL DEL DOCUMENTO
+% (similar a icmart.cls)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% En icmart.cls se usaba \RequirePackage{ifthen},
+% pero he modificado la definici\'on para no necesitarlo.
+
+%%% define block environment as short for trivlist
+\newenvironment{block}{\begin{trivlist}\item{}}{\end{trivlist}}
+
+\def\emailname{Correo electr\'onico}
+\def\webname{P\'agina web}
+
+% A veces, puedo querer desactivar el comportamiento autom\'atico
+% como \url de #2 y #3 en \contact. Por ejemplo, si quiero poner dos
+% email "uno@abc.es y dos@abc.es", ese "y" no quiero que vaya con
+% letra de "\url". As\'{\i}, aqu\'{\i} defino
+\let\contacturl\url
+% y para poder lograr el efecto requerido bastar\'{\i}a hacer
+% \let\contacturl\relax
+% en el archivo .tex y poner {\url{uno@abc.es} y \url{dos@abc.es}}
+% en el sitio correspondiente al email en \contact (el #2).
+% (Por supuesto, lo mismo con la p\'agina web.)
+
+%% SINTAXIS (\'usense tantos de estos como autores haya):
+%\contact{direcci\'on autor 1}{email autor 1}{p\'agina web autor 1}
+%\contact{direcci\'on autor 2}{email autor 2}{p\'agina web autor 2}
+
+%%% Define commands for the last page:
+%\newlength{\@textwidthminusparindent}
+%\newlength{\@saveparindent}
+\let\@contact=\empty
+\newcommand{\contact}[3]{%
+ \expandafter\gdef\expandafter\@contact\expandafter{%
+ \@contact \vskip 2.00pt plus 0.75 pt minus 0.25pt\relax
+% \setlength{\@textwidthminusparindent}{\textwidth}
+% \setlength{\@saveparindent}{\parindent}
+% \addtolength{\@textwidthminusparindent}{-\parindent}
+ \begin{block}%\hspace{\parindent}%
+ \footnotesize\scshape % <- Tama\~no y tipo de letra % ORDEN DE TAMA\~NOS: \small \footnotesize \scriptsize
+ %\begin{minipage}{\@textwidthminusparindent}%
+ \begin{minipage}{\textwidth}%
+% \setlength{\parindent}{\@saveparindent}%
+ \noindent
+ #1\ifx\empty #2\else\\[1.5pt]\normalfont\emailname: \contacturl{#2}\fi
+ \ifx\empty #3\else\\[1.5pt]\normalfont\webname: \contacturl{#3}\fi
+ \end{minipage}
+ \end{block}}}
+
+\def\contactalert{Usa \texttt{\textbackslash contact\{Autor,
+ Instituci\'on, Direcci\'on postal\}\{autor@email\}\{P\'agina web\}}\\
+ antes de \texttt{\textbackslash begin\{document\}}}
+
+% Imprime el contacto (se puede usar "a mano" si no es autom\'atico):
+\newcommand{\printcontact}{
+ \medskip
+ \ifx\empty\@contact\noindent
+ {\footnotesize % <- Tama\~no y tipo de letra
+ \contactalert % <- Para poderlo modificar m\'as f\'acil si es necesario
+ \par}%
+ \else\@contact\fi
+ \let\@contact\empty}
+% La \'ultima l\'{\i}nea se encarga de vac\'{\i}ar \@contact para que,
+% si se usa \printcontact a mano varias veces, no se vaya
+% acumulando lo que ya se ha usado.
+
+% Provide command to set end matter:
+\ifautocontact%
+\newcommand{\makelastpage}{\printcontact}
+\else
+\newcommand{\makelastpage}{\relax} % <<<< ??????
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% PARTE OBSOLETA (ya no se usa):
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%% COMANDO QUE YA NO NECESITO (para forzar):
+%\newcommand{\cabecera}[2]{%
+% \markboth{{\footnotesize\scshape #1}}{{\footnotesize\scshape #2}}%
+%}
+%
+% Cabeceras est\'andar en La Gaceta (antiguo):
+%\cabecera{Historia}{La Gaceta}
+%\cabecera{Matem\'aticas en las aulas de secundaria}{La Gaceta}
+%\cabecera{Educaci\'on}{La Gaceta}
+%\cabecera{La Olimpiada Matem\'atica}{La Gaceta}
+%\cabecera{Las medallas Fields}{La Gaceta}
+%\cabecera{El Diablo de los N\'umeros}{La Gaceta}
+%\cabecera{La Columna de Matem\'atica Computacional}{La Gaceta}
+%\cabecera{Programas inform\'aticos en matem\'aticas}{La Gaceta}
+%\cabecera{Carta desde los Estados Unidos}{La Gaceta}
+%\cabecera{Matem\'aticas en Acci\'on}{La Gaceta}
+%\cabecera{Mirando hacia atr\'as}{La Gaceta}
+%\cabecera{En Di\'alogo con la Academia}{La Gaceta}
+%\cabecera{Problemas y Soluciones}{La Gaceta}
+%
+%------------------------------------------------------------
+%
+% Secciones fijas est\'andar (antiguo):
+%\seccionfija{Historia}{Jos\'e Ferreir\'os Dom\'{\i}nguez}
+%\seccionfija{Matem\'aticas en las aulas de secundaria}{Antonio P\'erez Sanz}
+%\seccionfija{Educaci\'on}{Mar\'{\i}a Luz Callejo}
+%\seccionfija{La Olimpiada Matem\'atica}{Mar\'{\i}a Gaspar}
+%\seccionfija{Las medallas Fields}{Adolfo Quir\'os Graci\'an}
+%\seccionfija{El Diablo de los N\'umeros}{Javier Cilleruelo Mateo}
+%\seccionfija{La Columna de Matem\'atica Computacional}{Tom\'as Recio}
+%\seccionfija{Programas inform\'aticos en matem\'aticas}{Emilio Bujalance}
+%\seccionfija{Carta desde los Estados Unidos}{David Drasin}
+%\seccionfija{Matem\'aticas en Acci\'on}{Rosa Mar\'{\i}a Ros}
+%\seccionfija{Mirando hacia atr\'as}{Manuel de Le\'on y Francisco A. Gonz\'alez Redondo}
+%\seccionfija{En Di\'alogo con la Academia}{Pedro Ciruelo}
+%\seccionfija{Problemas y Soluciones}{\'Oscar Ciaurri y Jos\'e Luis D\'{\i}az-Barrero}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% MANEJO DE LAS CABECERAS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Para controal si una secci\'on fija consta de dos art\'{\i}ulos
+% independientes (cada uno con su cabecera/referencia),
+% uno en un documento, y un segundo (o m\'as) en otro.
+\newif\iffixedsectionwillcontinue
+ \fixedsectionwillcontinuefalse
+
+\newcounter{finalpageoffixedsection} % <- Inicializa como 0
+%\setcounter{finalpageoffixedsection}{0}
+
+% Manejo manual de la \'ultima p\'agina de una secci\'on
+% (normalmente no hace falta usarlo):
+\def\finalpage#1{%
+ \fixedsectionwillcontinuetrue
+ \setcounter{finalpageoffixedsection}{#1}
+}
+% Nota: Si se necesita, \finalpage{numero} se puede usar varias
+% veces en el documento. Por ejmplo, una para un supert\'{\i}tulo
+% y otra para un t\'{\i}tulo.
+
+\def\finalpageinfixedsectionhead{% % <-- El "%" es importante
+ \iffixedsectionwillcontinue
+ \thefinalpageoffixedsection
+ \else
+ \pageref{LastPage}%
+ \fi
+}
+
+% Para la cabecera de la primera p\'agina de cada secci\'on:
+\newcommand{\makefirstpageoffixedsection}{\markright{\footnotesize\scshape \thejourname,
+ Vol.~\thevolume\ (\theyearofpublication), N\'um.~\theissuenumber,
+ P\'ags.~\thepage--\finalpageinfixedsectionhead}
+}
+% IMPORTANTE: Si el t\'{\i}tulo y el supert\'{\i}tulo est\'an en la misma p\'agina,
+% el encabezado del t\'{\i}tulo machaca al del supert\'{\i}tulo (que es lo normal,
+% para que el art\'{\i}culo con t\'{\i}tulo tenga cabecera aut\'onoma.)
+% Si por alg\'un motivo se siquiera que no ocurra, hay supert\'{\i}tulo
+% y semit\'{\i}tulo.
+
+% Para la cabecera de la primera p\'agina de cada art\'{\i}culo:
+\newcommand{\makefirstpageofarticle}{\markright{\footnotesize\scshape \thejourname,
+ Vol.~\thevolume\ (\theyearofpublication), N\'um.~\theissuenumber,
+ P\'ags.~\thepage--\pageref{LastPage}}
+}
+
+
+\def\theleftheading{\theshortjourname} % Para tener algo por defecto
+% (Recordar: \theshortjourname es "La Gaceta", salvo que se cambie con \shortjourname)
+\def\leftheading#1{\def\theleftheading{#1}\makestandardpage}
+
+\newcommand{\makestandardpage}{%
+ \markboth{{\footnotesize\scshape \theleftheading}}{{\footnotesize\scshape \theshortjourname}}%
+}
+
+% Redefino mejor el "\makestandardpage" para lograr poner t\'{\i}tulos cortos.
+% Previamente, voy a definir esto:
+\newif\ifshortleftheading
+ \shortleftheadingfalse
+\def\theshortleftheading{} % <-- Inicializado por si acaso
+\def\shorttitle#1{%
+ \shortleftheadingtrue%
+ \def\theshortleftheading{#1}%
+ }
+\let\shortfixedsectiontitle\shorttitle
+\let\shortsupertitle\shorttitle
+
+% Tambi\'en quiero poder incluir (en las cabeceras derechas,
+% junto con el "La Gaceta"), los nombres de las partes en
+% las que se divide La Gaceta, a saber:
+% - Noticias de la Sociedad
+% - Actualidad
+% - Art\'{\i}culos
+% - Secciones
+
+% A partir del volumen 11 (2008) de La Gaceta
+% se suprimen las hojas separadoras entre las partes.
+% La divisi\'on en partes quedar\'a reflejada en el \'{\i}ndice;
+% pero, adem\'as, para saber en que parte estamos, tambi\'en
+% lo vamos a indicar en las cabeceras derechas.
+% En lugar de ser un simple "La Gaceta" ser\'an
+% un "La Gaceta - Parte".
+
+% Por supuesto, para ello hay que definir un comando
+% para poder indicar en cada art\'{\i}culo a qu\'e parte
+% pertecenece. De paso, si la parte es "Secciones"
+% servir\'a, con un argumento opcional, para se\~nalar
+% la secci\'on concreta. (Ese argumento opcional tiene
+% utilidad, exclusivamente, en los extra\~nos caso en
+% los que una secci\'on fija consta de varios art\'{\i}culos.
+% As\'{\i}, en el segundo (que no tiene "supert\'{\i}tulo")
+% no hace falta forzar un \shortsupertitle o similar
+% para poner la cabecera izquierda.
+
+% Entones, defino esto:
+\newcommand{\belongstopart}[2][]{%
+ \if\empty#1\else\shortsupertitle{#1}\fi%
+ \def\thegacetapart{ $\,\star\,$ #2}}
+\def\partalert{Usa \texttt{\textbackslash belogstopart\{Parte\}}
+ o \texttt{\textbackslash nopart}}
+\def\thegacetapart{\normalfont\ $\,\star\,$ [\partalert]} % <-- Inicializado como mensaje de error,
+% importante para no olvidarse.
+
+\def\nopart{\def\thegacetapart{}}
+
+% As\'{\i}, finalmente, \'esta es la redefinici\'on de "\makestandardpage":
+\renewcommand{\makestandardpage}{\ifshortleftheading%
+ \markboth{{\footnotesize\scshape \theshortleftheading}}%
+ {{\footnotesize\scshape \theshortjourname\thegacetapart}}%
+ \else%
+ \markboth{{\footnotesize\scshape \theleftheading}}%
+ {{\footnotesize\scshape \theshortjourname\thegacetapart}}%
+ \fi%
+}
+
+%% Entonces, usado \sorttitle{....} (o \sortsupertitle o \sortfixedsectiontitle)
+%% es el "...." lo que va a salir en las cabeceras izquierdas.
+
+%% Adem\'as, se puede hacer \leftheading{Lo que se quiera} dentro del texto del art\'{\i}culo,
+%% y ese "Lo que se quiera" es lo que aparece en las cabeceras izquierdas.
+
+%% El comanado \belongstopart es importante, y tendremos que usarlo en cada
+%% art\'{\i}culo, para indicar a qu\'e "parte" pertenece.
+%% Se puede usar, por ejemplo, como \belongstopart{Noticias de la Sociedad},
+%% \belongstopart{Secciones} o \belongstopart[Historia]{Secciones}
+%% (este \'utlimo, para indicar de paso el nombre de la secci\'on fija,
+%% cuando estamos en la parte "Secciones".
+
+%% Adem\'as, como es f\'acil olvidarse, si no se usa \belongstopart
+%% aparece un mensaje de error. Si realmente estamos escribiendo algo
+%% que no pertenece a ninguna "parte" (por ejemplo, la primera p\'agina,
+%% o las "instrucciones para autores"), hay que indicarlo con \nopart.
+
+%------------------- EXPLICACI\'ON -------------------%
+%%% Salvo cuando queremos cabeceras y pies de tipo
+%%% "empty" o "plain", en La Gaceta vamos a usar
+%%% siempre el estilo de cabeceras dado por
+%%% \ps@headingsgaceta,
+%%% que es como el \ps@myheadings de article,
+%%% pero cambiando un poco la disposici\'on de
+%%% las cosas y el tipo y tama\~no de letra.
+%%% Exactametne igual a como se usa el myheadings,
+%%% lo que va a la cabecera se manda con \markboth/\markright.
+%%% Dependiendo de si estamos en p\'agina normal,
+%%% en la primera p\'agina de una secci\'on fija o de un
+%%% art\'{\i}culo, o en una versi\'on modificada para
+%%% colgar en La Gaceta Digital, en las cabeceras tienen
+%%% que salir una cosas u otras. Para ello usaremos
+%%% diversos comandos que se encargar\'an de poner en la
+%%% cabecera lo que sea (internamente, llaman a
+%%% \markboth/\markright, por supuesto). Estos comandos
+%%% los denoto \makefirtpage... o cosas similares.
+%%% Para que nadie pueda usar el "headings" o el
+%%% "myheadings" de article, los hago iguales
+%%% a "headingsgaceta" por medio de los
+%%% correspondientes \let.
+%-----------------------------------------------------%
+
+% Este es el estilo para las cabeceras de La Gaceta.
+% Obs\'ervese que, aunque los textos de la cabecera los
+% pongo con tama\~no \footnotesize, los n\'umeros de p\'agina los
+% pongo con letra de tama\~no \small.
+%%% No es una errata. Lo hago adrede.
+% Es una modificaci\'on del \ps@myheadings de article.cls.
+\def\ps@headingsgaceta{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+% \def\@evenhead{\thepage\hfil\slshape\leftmark}% %%% ORIGINAL DE \ps@myheadings
+ \def\@evenhead{\small\thepage\hfil\slshape\leftmark}% %%% MODIFICADO JL
+% \def\@oddhead{{\slshape\rightmark}\hfil\thepage}% %%% ORIGINAL DE \ps@myheadings
+ \def\@oddhead{{\slshape\rightmark}\hfil\small\thepage}% %%% MODIFICADO JL
+ \let\@mkboth\@gobbletwo
+ \let\sectionmark\@gobble
+ \let\subsectionmark\@gobble
+ }
+
+% En principio, no hace falta tocar el \ps@myheadings ni el \ps@headings
+% de article.cls, pues no los vamos a usar.
+% Pero, por si alguien los intenta usar en su archivo, los anulo,
+% haci\'endolos iguales a \ps@headingsgaceta
+\let\ps@myheadings\ps@headingsgaceta
+\let\ps@headings\ps@headingsgaceta
+% (En particular, no queremos que las cabeceras tengan n\'umeros de secci\'on
+% ni nada similar, as\'{\i} que hago bien en redefinir \ps@headings para
+% que no ponga todo eso si alguien lo usa.)
+
+%%% Tambi\'en modifico el \ps@plain, que est\'a en latex.ltx,
+%%% para poner el n\'umero de p\'agina con letra \small
+\def\ps@plain{\let\@mkboth\@gobbletwo
+ \let\@oddhead\@empty\def\@oddfoot{\reset@font\hfil\small\thepage % El \small a\~nadido JL
+ \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
+
+
+%%% En realidad, este \ps@firstpage no sirve para nada, pues lo dejo
+%%% siempre igual a \ps@headingsgaceta. Pero, "psicol\'ogicamente",
+%%% en algunos sitios parece adecuado usar \pagestyle{firstpage},
+%%% aunque de verdad sea lo miso que usar \pagestyle{firstpage}
+%%% y sean los diversos comandos que llaman a \markboth/markright
+%%% los encargados de poner lo que sea en las cabeceras.
+\let\ps@firstpage\ps@headingsgaceta
+
+%----------------------
+%
+% Para poner en la cabecera de la primera p\'agina que estamos ante una
+% versi\'on ampliada de un art\'{\i}culo de La Gaceta. O una versi\'on
+% traducida al ingl\'es (o a otro idioma).
+% Est\'a pensado para poner este tipo de cosas en la web.
+%
+\def\originalPaperPages#1{\def\theoriginalPaperPages{#1}}
+\def\theoriginalPaperPages{}
+
+\def\modifiedPaperInfo#1{\def\themodifiedPaperInfo{#1}}
+\def\themodifiedPaperInfo{Versi\'on modificada del art\'{\i}culo} % Default: mensaje gen\'erico
+
+%% Redefinici\'on de los dos \makefirstpage para las versiones ampliadas o traducidas
+%% de los art\'{\i}culos (las que se ponen exclusivamente en la web).
+%% Original:
+% \renewcommand{\makefirstpage....}{\markright{\footnotesize\scshape \thejourname,
+% Vol.~\thevolume\ (\theyearofpublication), N\'um.~\theissuenumber.}}
+\def\modifiedPaper{
+\setcounter{page}{1}
+%% Lo anterior pone el contador de p\'aginas a 1,
+%% pues ya no va a estar paginado igual que el original.
+\renewcommand{\makefirstpageofarticle}{\markright{%
+ \lower12pt\hbox to 0pt{\footnotesize\scshape \thejourname, % \raise-12pt = \lower12pt
+ Vol.~\thevolume\ (\theyearofpublication), N\'um.~\theissuenumber
+% Ahora a\~nadimos las p\'aginas del original
+% (otra alternativa ser\'{\i}a no ponerlas):
+ \ifx\empty\theoriginalPaperPages\else, P\'ags.~\theoriginalPaperPages\fi%
+ \hss}% % El \hss evita overfull en la \hbox to 0pt
+ \footnotesize\normalfont \themodifiedPaperInfo}}%
+% IGUAL QUE EL DE ANTES:
+\renewcommand{\makefirstpageoffixedsection}{\markright{%
+ \lower12pt\hbox to 0pt{\footnotesize\scshape \thejourname, % \raise-12pt = \lower12pt
+ Vol.~\thevolume\ (\theyearofpublication), N\'um.~\theissuenumber
+% Ahora a\~nadimos las p\'aginas del original
+% (otra alternativa ser\'{\i}a no ponerlas):
+ \ifx\empty\theoriginalPaperPages\else, P\'ags.~\theoriginalPaperPages\fi%
+ \hss}% % El \hss evita overfull en la \hbox to 0pt
+ \footnotesize\normalfont \themodifiedPaperInfo}}%
+}
+
+%----------------------
+
+%----------------------
+%
+% As\'{\i} se usa:
+%
+%% El "\modifiedPaperInfo" es optativo pero est\'a fuertemente recomendado
+%% (si no se pone, aparece un mensaje gen\'erico).
+%% Ejemplos de mensajes para el "\extensionInfo":
+%%\modifiedPaper{This paper is an English translation of the published in}
+%\modifiedPaperInfo{Este art\'{\i}culo es una versi\'on ampliada del publicado en}
+%% Optativo pero recomendado (si no se pone, no salen las p\'aginas del original):
+%\originalPaperPages{203--207} % <--- Optativo pero recomendado
+%
+%% Y para que tenga efecto hay que poner esto:
+%\modifiedPaper
+%
+% NOTA: Si hay supert\'{\i}tulo y, dos p\'aginas m\'as tarde (en p\'agina impar),
+% t\'{\i}tulo, basta usar \originalPaperPages{...} dos veces.
+%-----------------------
+
+% Activo el tipo de p\'agina por defecto:
+\pagestyle{headingsgaceta}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BARRERA PARA OBJETOS FLOTANTES
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%--------------------------------------------------
+% Aqu\'{\i} defino la orden \FloatBarrier,
+% que sirve para impedir que los objetos flotantes
+% pasen esa barrera. Est\'a tomado del paquete
+% "placeins.sty" de Donald Arseneau (as\'{\i} no hace
+% falta cargar el paquete), eliminando lo que no
+% necesitamos; concretamente, es un "copiar y pegar" de
+% la versi\'on 2.2 del paquete, pero quitando las opciones
+% y los comentarios. El paquete placeins lo describe la
+% secci\'on 6.2.1, p. 288, del LaTeX Companion 2nd. ed.
+%
+% Lo voy a usar en los t\'{\i}tulos y en los
+% semit\'{\i}tulos; sobre todo para evitar que,
+% si tenemos un art\'{\i}culo con varios semit\'{\i}tulos,
+% los objetos flotantes puedan moverse a un trozo
+% de art\'{\i}culo que no les corresponde.
+% Lo a\~nado tambi\'en en el comando \separation
+% que definiremos m\'as adelante.
+%--------------------------------------------------
+
+\def\@fb@botlist{\@botlist}
+\def\@fb@topbarrier{\suppressfloats[t]}
+
+\def\FloatBarrier{\par\begingroup \let\@elt\relax
+ \edef\@tempa{\@fb@botlist\@deferlist\@dbldeferlist}%
+ \ifx\@tempa\@empty
+ \else
+ \ifx\@fltovf\relax % my indicator of recursion
+ \if@firstcolumn
+ \clearpage
+ \else
+ \null\newpage\FloatBarrier
+ \fi
+ \else
+ \newpage \let\@fltovf\relax
+ \FloatBarrier % recurse once only
+ \fi\fi \endgroup
+ \@fb@topbarrier }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SEPARACI\'ON "EST\'ANDAR" PARA A\~NADIRLA CUANDO EN UN MISMO
+% DOCUMENTO HAY VARIOS TÍTULOS (semit\'{\i}tulos, realmente).
+% Por si conviene no ponerlo, no hago que sea autom\'atico.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Lo que se usaba en La Gaceta hasta el Volumen 10 incluido:
+%\def\separa{%
+% \vskip 1pc
+% \begin{center}
+% \vrule width 2cm height .5pt depth 0pt \
+% \vrule width 7mm height .35mm depth .35mm \
+% \vrule width 2cm height .5pt depth 0pt
+% \end{center}
+% \vskip 2.5pc
+%}
+% (las l\'{\i}neas quedaban mal centradas verticalmente)
+
+\def\separation{\FloatBarrier%
+ \par\vskip 1pc plus 0.5pc minus 0.25pc
+ \begin{center}
+% \vrule width 2cm height .25pt depth .25pt \
+% \vrule width 7mm height .35mm depth .35mm \
+% \vrule width 2cm height .25pt depth .25pt
+ %% Es lo mismo que esto:
+ \rule[-0.25pt]{2cm}{0.5pt}
+ \rule[-0.35mm]{7mm}{0.7mm}
+ \rule[-0.25pt]{2cm}{0.5pt}
+ \end{center}
+ \vskip 1.5pc plus 2.5pc minus 0.25pc\null\par\pagebreak[3]
+}
+% Quiero que deje m\'as espacio despu\'es, pero hay que recordar
+% que esto est\'a pensado para poner cuanod aparece un segundo
+% t\'{\i}tulo sin cambiar de p\'agina, y eso ya lleva una seperaci\'on.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% T\'ITULOS, SEMIT\'ITULOS Y SUPERT\'ITULOS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%--------------------------------------------------
+% T\'ITULOS: Modificaci\'on de lo de article.
+% S\'olo permito que haya un t\'{\i}tulo.
+% (Como los t\'{\i}tulos van a poner la referencia
+% del art\'{\i}culo en la cabecera de la primera p\'agina,
+% si permitiera varios t\'{\i}tulos deber\'{\i}a controlar
+% n\'umeros de p\'agina intermedios. Este problema se evita
+% haciendo que s\'olo haya un t\'{\i}tulo por documento.)
+% Si quiero varios, hay que usar semit\'{\i}tulos.
+% Adem\'as, delante de un t\'{\i}tulo puede ir un
+% supert\'{\i}tulo.
+%--------------------------------------------------
+
+% Para que, si es necesario, sea f\'acil de cambiar:
+\def\porname{por}
+\def\acargoname{Secci\'on a cargo de}
+
+\newif\ifexistsfixedsectiontitle
+ \existsfixedsectiontitlefalse
+
+\newif\iffixededitor
+ \fixededitortrue
+
+\newif\ifalreadyonetitle
+ \alreadyonetitlefalse
+\def\goodbreaksecondsemititle{\null\vskip 0em plus 3.5em\pagebreak[3]}
+
+\let\@author\@empty % <- Lo inicializo para usarlo en los "if"
+
+% Para poder a\~nadir un espacio previo (positivo o negativo)
+% antes de los t\'{\i}tulos o supert\'{\i}tulos:
+\newdimen{\thepreviousvspace}
+\setlength{\thepreviousvspace}{0pt}
+\def\previousvspace#1{\setlength{\thepreviousvspace}{#1}}
+
+\renewcommand\maketitle
+{\FloatBarrier\par % <--- \FloatBarrier puesto JL
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \ifodd\thepage\else\cleardoublepage\fi % <--- Puesto JL: Empezar en p\'agina impar
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \makefirstpageofarticle % <--- Puesto JL
+ \thispagestyle{firstpage}\@thanks % <--- Cambiado JL: "plain" por "firstpage"
+ \endgroup
+ \setcounter{footnote}{0}%
+ \setcounter{table}{0}% <--- A\~nadido JL: poner el contador de tablas a 0
+ \setcounter{figure}{0}% <--- A\~nadido JL: poner el contador de figuras a 0
+ \setcounter{equation}{0}% <--- A\~nadido JL: poner el contador de ecuaciones a 0
+ \setcounter{section}{0}% <--- A\~nadido JL: contador de secciones a 0
+% \global\let\thanks\relax % <--- Comentados JL. Para que pueda haber varios semit\'{\i}tulos
+% \global\let\maketitle\relax
+% \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \ifalreadyfixedsectiontitleforheading% % <--- A\~nadido JL: Poner t\'{\i}tulo en cabecera
+ \else\global\let\theleftheading\@title\fi % esta\'andar si no hay super\'{\i}tulo
+ \global\let\@title\@empty
+% \global\let\title\relax
+% \global\let\author\relax
+% \global\let\date\relax
+% \global\let\and\relax
+ \makestandardpage % <--- A\~nadido JL: Para que, a partir de ahora, use la cabecera est\'andar
+ \alreadyonetitletrue% <--- A\~nadido JL
+}
+\def\@maketitle{%
+ \ifodd\thepage\else\cleardoublepage\fi % <--- Puesto JL: Para que empiece en p\'agina impar
+ \null
+ \vskip 0.333em% % <--- Cambiado JL: "2em" por "0.333em"
+ \vspace*{\thepreviousvspace}% % <--- A\~nadido JL
+ \begin{center}%
+ \let \footnote \thanks
+ {\large\bfseries \@title \par}% % <--- Cambiado JL: "\LARGE" por "\large\bfseries"
+ \vskip 1.25em% % <--- Cambiado JL: "1.5em" por "1.25em"
+ \if\@empty\@author\else % <- Puesto JL: por si no hay autor
+ {\small \porname\par}\vskip .5em% <--- A\~nadido JL: toda la l\'{\i}nea
+ {\bfseries%\large <--- JL: Quitado "\large" y puesto \bfseries
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ \fi
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 2em} % <--- Cambiado JL: "1.5em" por "2em"
+
+%--------------------------------------------------
+% SEMIT\'ITULOS: Modificaci\'on de lo de article.
+% Permito que haya varios semit\'{\i}tulos.
+%--------------------------------------------------
+
+\newcommand\makesemititle
+{\FloatBarrier\par % <--- \FloatBarrier puesto JL
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@makesemititle
+ \else
+ \twocolumn[\@makesemititle]%
+ \fi
+ \else
+% \newpage % <--- QUITADO JL
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@makesemititle
+ \fi
+% \thispagestyle{firstpage} % <--- Quitado JL (y era "plain", no "firstpage")
+ \@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \setcounter{table}{0}% <--- A\~nadido JL: poner el contador de tablas a 0
+ \setcounter{figure}{0}% <--- A\~nadido JL: poner el contador de figuras a 0
+ \setcounter{equation}{0}% <--- A\~nadido JL: poner el contador de ecuaciones a 0
+ \setcounter{section}{0}% <--- A\~nadido JL: contador de secciones a 0
+% \global\let\thanks\relax % <--- Comentados JL. Para que pueda haber varios t\'{\i}tulos
+% \global\let\makesemititle\relax
+% \global\let\@makesemititle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+% \global\let\title\relax
+% \global\let\author\relax
+% \global\let\date\relax
+% \global\let\and\relax
+ \makestandardpage % <--- A\~nadido JL: Para que, a partir de ahora, use la cabecera est\'andar
+ \alreadyonetitletrue% <--- A\~nadido JL
+}
+\def\@makesemititle{%
+% \newpage % <--- Quitado JL
+ \ifalreadyonetitle % <--- Alternativa puesta JL
+ \goodbreaksecondsemititle % <--- A\~nadido JL
+ \else
+ \null
+ \vskip 0.333em% % <--- Cambiado JL: "2em" por "0.333em"
+ \fi
+ \vspace*{\thepreviousvspace}% % <--- A\~nadido JL
+ \begin{center}%
+ \let \footnote \thanks
+ {\large\bfseries \@title \par}% % <--- Cambiado JL: "\LARGE" por "\large\bfseries"
+ \vskip 1.25em% % <--- Cambiado JL: "1.5em" por "1.25em"
+ \if\@empty\@author\else % <- Puesto JL: por si no hay autor
+ {\small \porname\par}\vskip .5em% <--- A\~nadido JL: toda la l\'{\i}nea
+ {\bfseries%\large <--- JL: Quitado "\large" y puesto \bfseries
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ \fi
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 2em} % <--- Cambiado JL: "1.5em" por "2em"
+
+%--------------------------------------------------
+% SUPERT\'ITULOS (secci\'on fija o similar).
+% Adaptaci\'on del "title" de article y de lo anterior.
+% En lugar de autor, hay (o puede haber) "editor".
+% S\'olo puede haber un supert\'{\i}tulo.
+%--------------------------------------------------
+
+\def\noeditor{\fixededitorfalse}
+% Hay que indicar \noeditor si no hay editor
+
+\def\fixedsectiontitle#1{\gdef\@fixedsectiontitle{#1}\existsfixedsectiontitletrue}
+\def\@fixedsectiontitle{\@latex@error{No \noexpand\fixedsectiontitle given}\@ehc}
+\def\fixedsectioneditor#1{\gdef\@fixedsectioneditor{#1}}
+\def\@fixedsectioneditor{\@latex@warning@no@line{No \noexpand\fixedsectioneditor given}}
+
+% Para poner t\'{\i}tulo en cabecera est\'andar si no hay supert\'{\i}tulo
+\newif\ifalreadyfixedsectiontitleforheading
+ \alreadyfixedsectiontitleforheadingfalse
+
+\newcommand\makefixedsectiontitle
+{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@makefixedsectiontitle
+ \else
+ \twocolumn[\@makefixedsectiontitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@makefixedsectiontitle
+ \fi
+ \makefirstpageoffixedsection % <--- Puesto JL
+ \thispagestyle{firstpage}\@thanks % <--- Cambiado JL: "plain" por "firstpage"
+ \endgroup
+ \setcounter{footnote}{0}%
+% \global\let\thanks\relax % <--- Comentados JL. Para que pueda haber varios t\'{\i}tulos
+ \global\let\makefixedsectiontitle\relax
+ \global\let\@makefixedsectiontitle\relax
+ \global\let\@thanks\@empty % Esto hay que dejarlo as\'{\i} para que no se repitan las ya puestas
+ \global\let\@fixedsectioneditor\@empty
+ \global\let\@date\@empty
+ \global\let\theleftheading\@fixedsectiontitle % <--- A\~nadido JL: Para poner el "fixedsectiontitle" en las cabeceras izquierdas
+ \alreadyfixedsectiontitleforheadingtrue % <--- A\~nadido JL: Autodescriptivo
+ \global\let\@fixedsectiontitle\@empty
+ \global\let\fixedsectiontitle\relax
+ \global\let\fixedsectioneditor\relax
+% \global\let\date\relax
+% \global\let\and\relax
+ \makestandardpage % <--- A\~nadido JL: Para que, a partir de ahora, use la cabecera est\'andar
+}
+\def\@makefixedsectiontitle{%
+ \newpage
+ \null
+ \vskip 0.5em% % <---- JL: Cambiado "2em" por "0.5em"
+ \vspace*{\thepreviousvspace}% % <--- A\~nadido JL
+ \begin{center}%
+ \let \footnote \thanks
+ \hrule\vskip1.666pt\hrule % <-- A\~nadido JL
+ \vskip.666em
+ {\iffixededitor\large\else\Large\fi%
+ \scshape \@fixedsectiontitle\par}% % <- \par da espaciado de l\'{\i}neas correcto
+ \iffixededitor
+ \vskip.666em
+ {\small \acargoname\par}\vskip.666em
+ {\small\bfseries
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@fixedsectioneditor
+ \end{tabular}\par}%
+ \vskip.4em
+ \else
+ \vskip.666em
+ \fi
+ \hrule\vskip1.666pt\hrule % <-- A\~nadido JL
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+
+
+%--------------------------------------------------
+% T\'ITULOS Y SUPERT\'ITULOS (alias, para que sea m\'as f\'acil acordarse):
+\let\supertitle\fixedsectiontitle
+\let\editor\fixedsectioneditor
+\let\makesupertitle\makefixedsectiontitle
+%--------------------------------------------------
+
+% Los inicializo as\'{\i}, por si acaso sirve para algo:
+\fixedsectiontitle{} % <- Si no se rellena, se deja vac\'{\i}o
+\fixedsectioneditor{} % <- Si no se rellena, se deja vac\'{\i}o
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ENTORNO PARA CUANDO EL EDITOR METE UNA EXPLICACI\'ON PEQUE\~NITA
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Es una ligera modificaci\'on sobre
+%%% \begin{quotation} .... \end{quotation}
+%%% (A\~nade \smallskip debajo, deja m\'as espacio a los lados,
+%%% y pone el texto en it\'alica y letra \small):
+\newenvironment{explanation}%
+ {\begin{quotation}\leftskip=1em\rightskip=1em\small\itshape\relax}%
+ {\end{quotation}\smallskip}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DEFINICIONES EXCLUSIVAS PARA ``PROBLEMAS Y SOLUCIONES''
+% (se pueden aprovecahr para las olimpiadas).
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\problemname{Problema}
+\def\proposedbyname{Propuesto por}
+
+\newenvironment{problem}[2]{\par\pagebreak[2]
+ \normalfont \topsep12\p@\@plus8\p@\@minus4\p@\relax
+ \setcounter{equation}{0} % Contador de ecuaciones a 0
+ \trivlist
+ \item[\hskip\labelsep
+ \scshape
+ \problemname\ #1\@addpunct{.}] % \@addpunct{.} no pone el . si ya hay
+ \textit{\proposedbyname\ #2\@addpunct{.}}\par\nobreak\ignorespaces
+}{
+ \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm
+}
+
+%% PARA USARLO S\'OLO EN CASO DE NECESIDAD:
+%%%% Todo tipo de itemizes, proofs, etc. no van bien con "wrapfig".
+%%%% Esto es una alternativa para poder usar "wrapfig" al principio
+%%%% de un "problem":
+\newcommand{\problemwithwrapfigure}[2]{\par\pagebreak[2]
+ \begingroup
+ \normalfont \vskip12\p@\@plus8\p@\@minus4\p@\relax
+ \setcounter{equation}{0} % Contador de ecuaciones a 0
+ \noindent\scshape\problemname\ #1\@addpunct{.}
+ \textit{\proposedbyname\ #2\@addpunct{.}}\par\nobreak\ignorespaces
+ \endgroup
+}
+
+\def\commentname{Nota}
+
+%%%% DEJAR ESTE CON LETRA NORMAL O M\'AS PEQUEÑA ???????
+%%%% Los editores de la secci\'on de problemas lo prefieren con
+%%%% letra de tama\~no normal y sin it\'alica, para que ofrezca
+%%%% libertad total.
+%%%%% (El entorno comment lo usa un paquete para comentar
+%%%%% trozos de texto del .tex y que latex no los tenga
+%%%%% en cuenta para compilar. Pero creo que no va a tener
+%%%%% conflicto con nosotros.)
+\newenvironment{comment}[1][\commentname]{\par
+ % Se pdr\'{\i}a usar \normalsize, \small o \footnotesize ????
+ \normalfont \topsep6\p@\@plus6\p@\relax
+ \trivlist
+ \item[\hskip\labelsep
+ \scshape
+ #1\@addpunct{.}]\ignorespaces
+}{
+ \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm
+}
+
+%%% Se podr\'{\i}a hacer que el entorno {solution} autom\'aticamente pusiera
+%%% el "Soluci\'on enviada por". Pero a veces hay que pner cosas como
+%%% "Soluci\'on redactada por los editores a partir de...".
+%%% Con lo cual tendr\'{\i}a que definir otro entono m\'as, para
+%%% lograr eso (podr\'{\i}a ser un solution*), o permitir par\'ametros
+%%% opcionales. Pero creo que no merece la pena.
+
+\newenvironment{solution}[1]{\par\nopagebreak[1]
+ \normalfont \topsep9\p@\@plus4\p@\@minus3\p@\relax
+ \trivlist
+ \item[]\textit{#1\@addpunct{.}}\par\nobreak\ignorespaces
+}{
+ \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm
+}
+
+%% PARA USARLO S\'OLO EN CASO DE NECESIDAD:
+%%%% Todo tipo de itemizes, proofs, etc. no van bien con "wrapfig".
+%%%% Esto es una alternativa para poder usar "wrapfig" al principio
+%%%% de un "solution":
+\newcommand{\solutionwithwrapfigure}[1]{\par\nopagebreak[1]
+ \begingroup
+ \normalfont \topsep9\p@\@plus4\p@\@minus3\p@\relax
+ \setcounter{equation}{0}
+ \noindent\textit{#1\@addpunct{.}}\par\nobreak\ignorespaces
+ \endgroup
+}
+
+%%% Se podr\'{\i}a hacer que el entorno {alsosolved} ponga
+%%% autom\'aticamente el "Tambi\'en resuelto por" (y crear un
+%%% {alsosolved*} que no lo haga), pero de nuevo no merece la pena.
+
+\newenvironment{alsosolved}{\par\nopagebreak[2]
+ % Se pdr\'{\i}a usar \footnotesize o \small ????
+ \normalfont \footnotesize \topsep2\p@\@plus1\p@\@minus0.5\p@\relax
+ \trivlist
+ \item[]\itshape\ignorespaces
+}{
+ \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm
+}
+
+\newcommand{\semisection}[1]{% %%% Espaciado delante parecido a "section"
+ \vskip 3.5ex \@plus 1.5ex \@minus 0.5ex\par\pagebreak[3]% % El "\par" no hace falta
+ {\centering\large\bfseries #1\par}%
+ \vskip 1ex \@plus 0.3ex \@minus 0.1ex\nopagebreak[4]%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BIBLIOGRAF\'IA
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%--------------------------------------------------
+% PARA QUE EN LA BIBLIOGRAF\'IA NO HAYA TANTO ESPACIO
+% DE SEPARACI\'ON ENTRE LOS \bibitem
+%--------------------------------------------------
+
+\renewcommand\@openbib@code{\parsep \z@}
+%% Eso est\'a adaptado del \DeclareOption{openbib}
+%% de article.cls
+% (se puede anular con \let\@openbib@code\@empty)
+
+%--------------------------------------------------
+% PARA, CUANDO LAS CITAS BIBLIOGR\'AFICAS NO SE HACEN CON \bibitem Y \cite,
+% SINO DE FORMA MANUAL, ESCRIBIR LA BIBLIOGRAF\'IA CON SANGR\'IA FRANCESA,
+% SIN QUE APAREZCA NUMERACI\'ON O ETIQUETAS QUE NO SE VAN A USAR.
+% Esto es muy adecuado si las citas se hacen como (Autor, a\~no)
+% o similar.
+%%% (Puesto que numerar no vale para nada [no se cita as\'{\i}], esto
+%%% queda bastante bien, y yo creo que es muy adecuado.)
+%--------------------------------------------------
+
+% Original de article.cls:
+%\newenvironment{thebibliography}[1]
+% {\section*{\refname}%
+% \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
+% \list{\@biblabel{\@arabic\c@enumiv}}%
+% {\settowidth\labelwidth{\@biblabel{#1}}%
+% \leftmargin\labelwidth
+% \advance\leftmargin\labelsep
+% \@openbib@code
+% \usecounter{enumiv}%
+% \let\p@enumiv\@empty
+% \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+% \sloppy
+% \clubpenalty4000
+% \@clubpenalty \clubpenalty
+% \widowpenalty4000%
+% \sfcode`\.\@m}
+% {\def\@noitemerr
+% {\@latex@warning{Empty `thebibliography' environment}}%
+% \endlist}
+
+%%% As\'{\i} se hacen las sangr\'{\i}as francesas:
+% \begin{list}{}{%
+% \setlength{\leftmargin}{1pc}%
+% \setlength{\itemindent}{-1pc}%
+% \setlength{\listparindent}{-1pc}%
+% \setlength{\topsep}{0pt}}
+%
+% \item ...
+%
+% \item ...
+% \end{list}
+
+%%% Nuevo entorno "thebibliography*" que combina las ideas anteriores:
+\newenvironment{thebibliography*}
+ {\section*{\refname}%
+ \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
+ \list{}%
+ {\setlength{\leftmargin}{1pc}%
+ \setlength{\itemindent}{-1pc}
+ \setlength{\listparindent}{-1pc}
+ \setlength{\topsep}{0pt}
+ \@openbib@code}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography*' environment}}%
+ \endlist}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% REDEFINICI\'ON DE \begin{document} Y \end{document}
+% PARA CARGAR ALGUNA COSA AUTOM\'ATICAMENTE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Redefine \begin{document} and \end{document}
+% in order to include begin and end matter automatically.
+% The original environment is still available as origdocument.
+%---
+% As\'{\i} se redefinir\'{\i}a el \document, pero no lo necesito:
+% \let\origdocument\document
+% \def\document{\origdocument........}
+% donde en ........ se pone lo que se desee.
+%---
+% Y as\'{\i} se hace con \enddocument:
+\let\endorigdocument\enddocument
+\def\enddocument{\enlargethispage{2mm}\makelastpage\label{LastPage}\endorigdocument} %
+%% El mecanismo del paquete "lastpage" para poner una etiqueta al final
+%% del documento (y poder saber el n\'umero de la \'ultima p\'agina)
+%% es algo mejor, pues tiene en cuenta los posibles objetos flotantes
+%% que queden despu\'es del texto final.
+%% Pero como eso no hay que permitirlo (aunque sea "a mano"), no merece la
+%% pena complicarse la vida.
+
+%% A veces puede suceder que justo tras el \makelastpage haya un cambio
+%% de p\'agina, y que entonces el \label{LastPage} caiga en una p\'agina
+%% que no exite, con lo cual el m\'etodo autom\'atico de saber el
+%% n\'umero de la \'ultima p\'agina no funciona. Se puede arreglar poni\'endolo
+%% manual con \finalpage{} o usando \enlargethispage{2mm} o similar.
+%% Como lo de \enlargethispage{2mm} es muy razonable, lo dejo fijo
+%% en la definici\'on de \enddocument.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% COSAS DE SPANISH PARA QUE SE CARGUEN DESPU\'ES DEL BEGIN DOCUMENT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Lo que hace spanish (dentro de \layoutspanish, por eso el ##1):
+% \def\@fnsymbol##1%
+% {\ifcase##1\or*\or**\or***\or****\or
+% *****\or******\else\@ctrerr\fi}%
+
+%%% Lo que hace latex.ltx:
+%\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
+% \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
+% \or \ddagger\ddagger \else\@ctrerr\fi}}
+% \def\fnsymbol#1{\expandafter\@fnsymbol\csname c@#1\endcsname} % latex.ltx
+
+% Repongo la original inglesa (en latex.ltx):
+\addto\layoutspanish{\def\@fnsymbol#1{%
+ \ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
+ \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
+ \or \ddagger\ddagger \else\@ctrerr\fi}}}
+
+%\shorthandoff{"} % <= HAY QUE PONERLO DESPUES DEL \begin{document}, NO ANTES.
+%%% Es de babel, no de spanish.
+%
+%\renewcommand\shorthandsspanish{}
+% es una variante optimizada de esto:
+%\addto\shorthandsspanish{\spanishdeactivate{."'~<>}}
+% Pero, al menos de momento, no quiero cargarme <<...>>,
+% ni tampoco ~---, luego lo dejo as\'{\i}:
+\addto\shorthandsspanish{\spanishdeactivate{"}\shorthandoff{"}}
+% (Si me cargara ~---, podr\'{\i}a usar \nobreakdashes---; el comando
+% \nobreakdashes exist\'{\i}a en amsmath, y que fue a\~nadido a LaTeX en 2003.)
+% Para evitar que ~n no sea \~n en spanish, uso esto:
+\deactivatetilden % Para que ~n no sea \~n en spanish
+% La ' esta desactivada por defecto (desde hace muchos "spanish"),
+% luego no hace falta quitarla.
+%%% El punto decimal lo dejo como est\'a por defecto en spanish;
+%%% si quiere, cada usuario (o editor) lo puede controlar en su
+%%% art\'{\i}culo (con \decimalpoint, por ejemplo).
+
+%%%%% OLVIDO DE SPANISH 4.1:
+\def\inf{\mathop{\operator@font \protect\es@op@i nf}}
+
+%%%%% EL \pmod DE LA AMS (EN amsmath.sty) DEJA MENOS ESPACIO
+%%%%% DENTRO DE TEXTO NORMAL. SPANISH LO MACHACA CUANDO
+%%%%% REDEFINE \pmod PARA PONERLE EL ACENTO, PUES USA LA VERSI\'ON
+%%%%% DE LaTeX ORDINARIO. AS\'I PUES, HAY QUE REDEFINIRLO
+%%%%% SI QUEREMOS QUE ACT\'UE COMO EL DE LA AMS.
+%%%%% SE HACE COMO SIGUE (El \addto\es@operators es para postergar su carga,
+%%%%% pues las definiciones de spanish toman efecto cuando aparece
+%%%%% el \begin{document}; sin el \addto\es@operators, esta definici\'on
+%%%%% habr\'{\i}a que darla despu\'es del \begin{document}).
+%% ---- Parte recordatoria de lo que hay en amsmath:
+%\newcommand{\pod}[1]{\allowbreak
+% \if@display\mkern18mu\else\mkern8mu\fi(#1)}
+%% ---- fin de la parte recordatoria.
+%\makeatletter%
+%\addto\es@operators{% (Estos % son importantes)
+% \renewcommand{\pmod}[1]{\pod{{\operator@font m\es@op@ac od}\mkern6mu#1}}%
+%}%
+%\makeatother
+%%%%% Pero yo prefiero esto:
+\addto\es@operators{% (Estos % son importantes)
+ \renewcommand{\pmod}[1]{%
+ \allowbreak\mkern8mu({\operator@font m\es@op@ac od}\mkern6mu#1)}%
+}%
+%%%%% que es parecido al original de LaTeX:
+%%%%% \def\pmod#1{%
+%%%%% \allowbreak\mkern18mu({\operator@font mod}\,\,#1)}
+%%%%% }
+%%%%% pero con menos espacio (siempre el peque\~no de amsmath).
+
+%%%% Adem\'as, redefino el \mod de amsmath (cargado en este estilo)
+%%%% para ponerle el acento, pues spanish no lo hace:
+%% ---- Parte recordatoria de lo que hay en amsmath:
+%\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
+% \else\mkern12mu\fi{\operator@font mod}\,\,#1}
+%% ---- fin de la parte recordatoria.
+\addto\es@operators{% (Estos % son importantes)
+ \renewcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
+ \else\mkern12mu\fi{\operator@font m\es@op@ac od}\,\,#1}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%