diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/gaceta/gaceta.cls | 1589 |
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 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |