%%% ==================================================================== %%% @LaTeX-file{ %%% filename = "gaceta.cls", %%% version = "1.06", %%% date = "2008/05/14", %%% 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 %%% <>, 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.06 % % % % 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/05/14, % Clase para La Gaceta de la RSME, ver. 1.06] \typeout{Clase para La Gaceta de la RSME, ver. 1.06, <2008/05/14>.} % ---------------------- 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, EST\'A AJUSTADO 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, centering, marginparwidth = 1cm, % S\'olo notas al margen de 1cm; si no, se salen del papel top = 3.0cm }% %% IMPORTANTE: Todo est\'a pensado para usar pdflatex, no latex. %% Si se quiere componer con latex, hay que poner %% \documentclass[dvips]{gaceta} %% para que "gaceta" le pase el "dvips" a "geometry". %% De lo contrario, "geometry" no se entera del ancho del %% papel y se piensa que es el a4 que tiene por defecto. %% (Este problema no afecta a la caja de texto ni, por %% tanto, a la paginaci\'on.) \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}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ABSTRACT % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %% Esta definici\'on est\'a incluida desde gaceta.cls versi\'on 1.06: \renewenvironment{abstract}{% \quotation\small % Imita el comportamiento de \paragraph*{\abstractname.}: \noindent \textsc{\abstractname.\hspace{1em}}% } {\endquotation\vskip 1.5em plus 0.5em\relax} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 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 } %---------------------- %---------------------- %%%% Definimos un entorno con espaciado y forma similar a los de los teoremas, %%%% pero asign\'andole el nombre justo en el momento. %%%% Este entorno lo pongo en la versi\'on 1.06 de gaceta.cls %%%% ----- \def\pseudotheoremfont{\itshape} \newenvironment{pseudotheorem}[2][]{% \thm@indent \pseudotheoremfont \trivlist \item[\hskip\labelsep \the\thm@headfont #2\@ifempty{#1}{}{ \normalfont(#1)}\@addpunct{.}] % \@addpunct{.} no pone el . si ya hay \ignorespaces }{% \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm } %%%% ----- %---------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % "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} % <<<< Para que no haga nada \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 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Por si queremos indicar que la paginaci\'on es provisional: \def\theprovisional{} \def\provisional{% \def\theprovisional{ (provisional)}% } % Para controlar 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\theprovisional} } % 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}\theprovisional} } \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{% % (No hace nada si tengo "\supertitle") \ifexistsfixedsectiontitle\else% \shortleftheadingtrue% \def\theshortleftheading{#1}% \fi% } \def\shortsupertitle#1{% \shortleftheadingtrue% \def\theshortleftheading{#1}% } \let\shortfixedsectiontitle\shortsupertitle % 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 %-------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 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'' % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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} %%%% ANTE LA DISYUNTIVA DE DEJAR ESTE ENTORNO "comment" CON %%%%% LETRA NORMAL O M\'AS PEQUEÑA, HEMOS OPTADO POR LA NORMAL. %%%% 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 podr\'{\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]% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DEFINICI\'ON EXCLUSIVA PARA LOS PROBLEMAS DE LAS ``OLIMPIADAS'' % (se pueden aprovechar para las olimpiadas). % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Parecido a los problemas de la secci\'on de "Problemas y soluciones", %%%% pero sin proponente y con la mitad de \topsep. %%%% Tambi\'en podr\'{\i}a haber un usado un entorno de teoremas, pero bueno... %%%% (lo que he usado deja m\'as espacio que los "teoremas", y he preferido %%%% que la numeraci\'on no fuera autom\'atica). %%%% Esta definici\'on est\'a ya incluida en gaceta.cls versi\'on 1.06: %%%% ----- \def\olimpicproblemname{Problema} \newenvironment{olimpicproblem}[1]{\par\pagebreak[2] % \normalfont \topsep12\p@\@plus8\p@\@minus4\p@\relax % <--- "Problemas y soluciones" \normalfont \topsep6\p@\@plus4\p@\@minus2\p@\relax \setcounter{equation}{0} % Contador de ecuaciones a 0 \trivlist \item[\hskip\labelsep \scshape \olimpicproblemname\ #1\@addpunct{.}] % \@addpunct{.} no pone el . si ya hay \ignorespaces }{ \endtrivlist\@endpefalse % <- NO S\'E QU\'E ES ESTO, PERO LO USA amsthm } %%%% ----- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 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: \providecommand{\es@op@i}{\es@op@ac i} % <--- En spanish 5, \es@op@i ya no existe \addto\es@operators{% (Estos %, aqu\'{\i} y luego, son importantes) \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 v4.2 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) % Para recuperar el mod no acentuado fuera de spanish, % con spanish v4.2 necesito aqu\'{\i} un \babel@save\mod. % Por el contrario, con spanish v5.0, el mismo \babel@save % hace que el no acentuado no se recupere fuera de spanish. % He optado por que funcione bien con la versi\'on 5. \renewcommand{\mod}[1]{\allowbreak\if@display\mkern18mu \else\mkern12mu\fi{\operator@font m\es@op@ac od}\,\,#1}% } %%%% Finalmente, por si no estoy usando spanish, %%%% redefino \pmod y \mod para que tengan el %%%% mismo espaciado que los anteriores %%%% (pero sin el acento en la o, claro) \renewcommand{\pmod}[1]{% \allowbreak\mkern8mu({\operator@font mod}\mkern6mu#1)}% \renewcommand{\mod}[1]{\allowbreak\if@display\mkern18mu \else\mkern12mu\fi{\operator@font mod}\,\,#1}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%