Clases académicas

Las clases académicas que impone una revista —amsart, IEEEtran, elsarticle, revtex4-2, acmart— son el tipo de clase de documento de LaTeX peor entendido. En la copia de acmart.cls que trae TeX Live 2024 aparece la línea \LoadClass[\ACM@fontsize, reqno]{amsart}: la clase de envío de la ACM, en informática, se apoya en la de la American Mathematical Society. Una clase de envío no es una hoja de estilo que te han dado; es el reglamento del destino escrito en forma ejecutable, y carga en silencio otras clases y paquetes a tus espaldas. Esta página trata de qué fija realmente una clase así, por qué pelearse con ella cuesta un tiempo del que no dispones y dónde exactamente muerden los paquetes que ya cargó.

Qué fija realmente una clase de envío

Se fijan seis cosas: el número de columnas, la caja de texto, las fuentes, el diseño de los encabezados, la estructura del bloque de título y el formato bibliográfico. Lo que queda tuyo es el contenido y su estructura lógica. Por eso el destino distribuye un paquete —el .cls, un estilo bibliográfico .bst a juego y una plantilla para rellenar— en vez de una lista de normas. En el manuscrito se escribe solo significado, \section{...} y \cite{...}, y toda cuestión de apariencia pasa a la clase. El principio de separar estructura y apariencia lo cubre la página sobre la clase de documento y el preámbulo, y no se repite aquí. Lo nuevo en una clase de envío es que esa separación la impone el reglamento de otro, no tu gusto.

De ahí sale el consejo más útil: no pelees con la clase. Los límites de páginas se cuentan en la caja de texto de esa clase, así que las páginas ganadas borrando \vspace o apretando los márgenes con geometry desaparecen en cuanto producción vuelve a componer el artículo. Un manuscrito pasado de dos columnas a una, o con fuentes sustituidas, puede rebotar en el control de formato antes de que lo vea un revisor. En cambio, si dejas trabajar a la clase, el mismo cuerpo de texto se traslada intacto a la clase de otra sociedad. Una clase de envío le devuelve al autor el tiempo que no dedica a la maquetación, no la libertad de cambiarla.

Hay un detalle práctico al conseguirlas: estas clases suelen faltar en una instalación mínima de TeX. Un TeX Live o MiKTeX completo trae amsart, IEEEtran, acmart, elsarticle y revtex, pero en una configuración mínima se instalan de una en una (tlmgr install ieeetran) o se saca el .cls de la descarga de la editorial y se deja junto al manuscrito; llncs, en particular, suele guardarse en local. Y siempre vuelve a descargar la plantilla actual del author kit o author center del destino. Reutilizar una copia local vieja y descubrir la víspera del plazo que el diseño ha cambiado es un accidente que ocurre en algún sitio todos los años.

amsart — la clase de la AMS y sus entornos de teorema

amsart es la clase de artículo de la American Mathematical Society. No solo es la clase más extendida para envíos matemáticos, sino también la base sobre la que se apoyan otras clases: como vimos, acmart la carga. La clase se ocupa ella misma de amsmath y amsfonts, con lo que sobran casi todas las líneas \usepackage matemáticas habituales. Además de \title y \author, el bloque de título usa \address{...}, \email{...}, \thanks{...}, \subjclass[2020]{...} (la clasificación temática de la AMS) y \keywords{...}; los entornos de teorema se montan con \newtheorem y el \theoremstyle de amsthm.

Lo primero que hace tropezar en amsart suele ser dónde va el resumen. Por costumbre de article se pone el entorno abstract después de \maketitle, y el registro dice: Class amsart Warning: Abstract should precede \maketitle in AMS document classes. Es fácil pasarlo por alto porque el documento compila igual, y sale un PDF con el resumen caído fuera del bloque de título. Hay que poner abstract antes de \maketitle. La misma convención la hereda acmart, construido sobre amsart, salvo que allí no es un aviso sino un error que detiene la compilación.

latex
\documentclass[reqno]{amsart}
\newtheorem{theorem}{Theorem}[section]
\begin{document}
\title{On a Class of Analytical Engines}
\author{Ada Lovelace}
\address{Analytical Engine Lab, London, UK}
\email{[email protected]}
\subjclass[2020]{Primary 68N01; Secondary 01A55}
\keywords{analytical engine, program}

% the abstract must come BEFORE \maketitle in AMS classes
\begin{abstract}
This is the abstract.
\end{abstract}
\maketitle

\section{Introduction}
\begin{theorem}
Every engine has a program.
\end{theorem}
\end{document}

IEEEtran — revistas y congresos del IEEE

Lo característico de IEEEtran es que una misma clase se convierte en diseños completamente distintos según las opciones. \documentclass[journal]{IEEEtran} da la revista a dos columnas; \documentclass[conference]{IEEEtran}, las actas de congreso; también existen technote para notas breves y peerreview/peerreviewca para copias de revisión. Añadir compsoc (Computer Society), comsoc (Communications Society) o transmag cambia al estilo de esa sociedad, y puede combinarse con un tamaño de fuente, como en \documentclass[10pt,journal,compsoc]{IEEEtran}. El papel predeterminado es letterpaper, con a4paper y cspaper disponibles.

En cuanto a convenciones: el resumen va en un entorno abstract y las palabras clave en el entorno dedicado IEEEkeywords, que se titula automáticamente “Index Terms” en modo revista y “Keywords” en modo congreso. Autores y afiliaciones se componen con \IEEEauthorblockN{...} y \IEEEauthorblockA{...}, y el estilo bibliográfico estándar es IEEEtran.bst. Hay otra propiedad, discreta pero decisiva: IEEEtran.cls no carga casi ningún paquete externo por omisión; en la copia que trae TeX Live 2024 las únicas llamadas a \RequirePackage están en la búsqueda de fuentes matemáticas para las Computer y Communications Societies. Por eso tolera notablemente bien tus propios hyperref o geometry, justo al revés que acmart. Para las plantillas, vuelve al Template Selector del IEEE.

latex
\documentclass[conference]{IEEEtran}
\begin{document}
\title{A Conference Paper}
\author{\IEEEauthorblockN{Ada Lovelace}
  \IEEEauthorblockA{Analytical Engine Lab\\ London, UK}}
\maketitle

\begin{abstract}
This is the abstract.
\end{abstract}

\begin{IEEEkeywords}
broadband networks, quality of service
\end{IEEEkeywords}

\section{Introduction}
The conference option sets the proceedings layout.
\end{document}

acmart — revistas y actas de la ACM

acmart es la clase unificada que distribuye la ACM; sustituyó al antiguo conjunto disperso de clases por congreso y por revista. El aspecto se elige con la opción format=, y la parte format= puede omitirse. El valor por omisión para envíos en revisión es manuscript, a una columna; la mayoría de revistas usa acmsmall, las actas publicadas como libro usan sigconf y los destinos SIGPLAN, sigplan. Regla práctica: los formatos que empiezan por acm son para revistas y transactions, y los que empiezan por sig, para actas. Así se escribe \documentclass[sigconf]{acmart} o \documentclass[manuscript,review,anonymous]{acmart}. Ojo: sigchi, y también siggraph, están obsoletos. Si pides cualquiera de los dos, la clase avisa Class acmart Warning: The format sigchi is now obsolete. I am switching to sigconf. y cambia por su cuenta. La opción sigchi-a sobrevive solo para documentos antiguos: la propia clase advierte de que ACM no acepta manuscritos en ese formato.

Las convenciones de acmart se concentran en cuántos metadatos exige. Para una revista se la nombra en forma abreviada, \acmJournal{TOMS}; para un artículo regular se declaran los conceptos CCS (ACM Computing Classification System) con \begin{CCSXML}...\end{CCSXML} y \ccsdesc{...}, más \keywords{...}. Las afiliaciones se escriben por partes: \affiliation{\institution{...}\city{...}\country{...}}. Las referencias usan ACM-Reference-Format, basado en natbib. Y la regla del resumen heredada de amsart aquí es obligatoria: si pones abstract después de \maketitle, la compilación se detiene con ! Class acmart Error: Abstract must be defined before maketitle command. Please move it! A diferencia de amsart, que solo avisa, esta se niega a construir el documento.

latex
\documentclass[sigconf]{acmart}
\begin{document}
\title{A Proceedings Paper}
\author{Ada Lovelace}
\affiliation{\institution{Analytical Engine Lab}\city{London}\country{UK}}

% abstract before \maketitle, or acmart raises an error
\begin{abstract}
This is the abstract.
\end{abstract}

\ccsdesc[500]{Networks~Network reliability}
\keywords{broadband networks, quality of service}
\maketitle

\section{Introduction}
The sigconf format sets the ACM proceedings layout.
\end{document}

llncs — la serie LNCS de Springer

llncs es la clase de la serie de actas Lecture Notes in Computer Science (LNCS) de Springer y sus series hermanas LNAI y LNBI; se selecciona directamente por su nombre, \documentclass{llncs}. Muchísimos congresos internacionales que publican con Springer —ECCV, MICCAI y cientos más— usan este diseño a una columna, que extiende article. Sus convenciones se concentran en autores y afiliaciones, para lo cual la clase añade una orden \institute que el LaTeX estándar no tiene. Se adjunta un número de afiliación a cada autor con \inst{n}, como en \author{Ivar Ekeland\inst{1} \and Roger Temam\inst{2}}, y luego se listan las afiliaciones con \institute{first affiliation \and second affiliation}; la numeración es automática. Las direcciones de correo van dentro de \institute como \email{...}. El estilo bibliográfico es splncs04 (\bibliographystyle{splncs04}). La opción runningheads está pensada para los editores del volumen y no suele hacer falta en un envío individual.

latex
\documentclass{llncs}
\begin{document}
\title{An LNCS Contribution}
\author{Ivar Ekeland\inst{1} \and Roger Temam\inst{2}}
\institute{Paris-Dauphine University, Paris, France\\
  \email{[email protected]}
  \and Sorbonne University, Paris, France\\
  \email{[email protected]}}
\maketitle

\begin{abstract}
The abstract follows the title block.
\end{abstract}

\section{Introduction}
Bibliography style: splncs04.
\end{document}

elsarticle — las revistas de Elsevier

elsarticle es la clase para manuscritos enviados a revistas de Elsevier, y se usa como \documentclass[preprint,12pt]{elsarticle}. Sus valores por omisión son a4paper,10pt,oneside,onecolumn,preprint, y preprint da la maqueta de envío, holgada y a una columna. 1p, 3p y 5p corresponden a los diseños publicados (una columna, dos columnas y dos columnas con el resumen a todo el ancho); la página final la compone la editorial. También hay review, que amplía el interlineado para los revisores, final, más cercano al impreso, y doubleblind para envíos anonimizados. La convención es el entorno frontmatter: \title{...}, \author{...}, \affiliation{...} (el antiguo \address{...} sigue funcionando), el entorno abstract y el entorno keyword van todos dentro, y el cuerpo empieza tras \end{frontmatter}. Autores y afiliaciones se emparejan por etiqueta: \author[a]{...} con \affiliation[a]{organization={...}, city={...}, country={...}}.

Aquí está la mina que más se pisa. Cerca del final, elsarticle.cls ejecuta \RequirePackage[\@biboptions]{natbib}, de modo que la clase ya ha cargado natbib por ti, con numbers como estilo de cita predeterminado. Si escribes \usepackage[authoryear]{natbib} en el preámbulo sin saberlo, la compilación se detiene con ! LaTeX Error: Option clash for package natbib. Confunde aún más que pasar ese mismo numbers funcione por casualidad: el fallo parece intermitente. Hay tres arreglos correctos: pasar el estilo como opción de clase, \documentclass[preprint,authoryear]{elsarticle}; usar el \biboptions{...} que la clase proporciona; o suprimir la carga del todo con la opción nonatbib. El estilo bibliográfico se elige entonces entre elsarticle-num, elsarticle-num-names y elsarticle-harv. Las órdenes de cita de natbib se tratan en la página de natbib.

latex
% author-year is a CLASS option here -- do not reload natbib yourself
\documentclass[preprint,authoryear,12pt]{elsarticle}
\begin{document}
\begin{frontmatter}
\title{An Elsevier Manuscript}
\author[a]{Ada Lovelace}
\affiliation[a]{organization={Analytical Engine Lab},
  city={London}, country={UK}}

\begin{abstract}
The abstract lives inside the front matter.
\end{abstract}

\begin{keyword}
broadband networks \sep quality of service
\end{keyword}
\end{frontmatter}

\section{Introduction}
Text begins after the front matter.
\bibliographystyle{elsarticle-harv}
\end{document}

REVTeX — física (APS y AIP)

revtex4-2 es la clase de las revistas de la American Physical Society (APS) y del American Institute of Physics (AIP); la versión va en el propio nombre de la clase. Se combinan tres tipos de opción —la sociedad (aps o aip), la revista (prl, prb, prx, prfluids, etc.) y la maqueta (preprint, reprint, twocolumn)— como en \documentclass[prl,aps,reprint]{revtex4-2}. Las afiliaciones funcionan de forma peculiar: si pones \affiliation{...} justo después de cada \author{...}, pertenece a ese autor, y los autores consecutivos que comparten afiliación se agrupan solos. Para numeración en superíndice se usa en cambio la opción de clase superscriptaddress. El estilo bibliográfico es apsrev4-2.

REVTeX también lleva natbib dentro, pero con opciones distintas a las de elsarticle. revtex4-2.cls ejecuta \RequirePackage[sort&compress]{natbib}, lo que significa que los números de cita se ordenan de forma ascendente y las series consecutivas se comprimen en intervalos. Así, \cite{c,a,b} sale como [1–3]. Es un valor por omisión deliberado, acorde con la costumbre en física, y no una consecuencia del orden en que escribiste las claves. También aquí conviene no añadir tu propio \usepackage{natbib} y dejar que lo haga la clase.

latex
\documentclass[prl,aps,reprint]{revtex4-2}
\begin{document}
\title{A Physical Review Letter}
\author{Ada Lovelace}
\affiliation{Analytical Engine Lab, London, UK}
\author{Charles Babbage}
\affiliation{Analytical Engine Lab, London, UK}

% in REVTeX the abstract comes before the title block is typeset
\begin{abstract}
This is the abstract.
\end{abstract}
\maketitle

\section{Introduction}
% natbib is loaded by the class with sort&compress
Text.
\bibliographystyle{apsrev4-2}
\end{document}

Los paquetes que la clase ya cargó y el Option clash

La mayoría de los errores propios de una clase de envío tienen una sola causa: el autor carga, con opciones, un paquete que la clase ya había cargado. acmart es el caso clásico: la copia de TeX Live 2024 trae por su cuenta geometry, hyperref, fancyhdr, natbib, microtype, booktabs, caption, setspace, xcolor y graphicx. Pon \usepackage[margin=1in]{geometry} tras \documentclass[sigconf]{acmart} y la compilación se detiene con ! LaTeX Error: Option clash for package geometry. elsarticle carga igualmente graphicx, y geometry bajo sus opciones de página publicada. El síntoma «quise cambiar los márgenes y me dio error» casi siempre es esto.

Prueba tres respuestas, en orden. Primero, pregúntate si la opción puede pasarse como opción de claseauthoryear en elsarticle es justo ese caso—. Segundo, si de verdad necesitas adelantarte, escribe \PassOptionsToPackage{...}{geometry} antes de \documentclass: la opción se fusionará cuando la clase cargue el paquete. Tercero, cambiar márgenes o columnas suele infringir el reglamento de envío, así que valora primero que no hacerlo sea la respuesta correcta. Para saber qué se cargó, lo más rápido es un \listfiles al principio del preámbulo y una mirada al final del registro.

ClaseDestino / campoQué recordar
amsartAmerican Mathematical Society (matemáticas)abstract antes de \maketitle; además, base de acmart
IEEEtranRevistas y congresos del IEEE (eléctrica, computación)el modo se elige por opción (journal, conference, technote); apenas carga paquetes
acmartRevistas y actas de la ACM (informática)el aspecto se elige con format=; conceptos CCS obligatorios; carga muchos paquetes
llncsActas Springer LNCS / LNAI / LNBIafiliaciones con \institute e \inst{n}; bibliografía splncs04
elsarticleRevistas de Elsevier (todos los campos)preliminares en el entorno frontmatter; la clase carga natbib, así que usa \biboptions
revtex4-2Revistas APS / AIP (física)\affiliation va tras cada \author; natbib se carga con sort&compress

Estos son solo ejemplos representativos. Springer tiene además una clase unificada más reciente, sn-jnl; en matemáticas está amsbook, la versión libro de amsart, junto con clases propias de distintas editoriales; las editoriales biomédicas traen sus propias plantillas. Sea cual sea el campo, los tres principios que acabamos de ver siguen valiendo: no alterar el diseño, volver a descargar la plantilla y no cargar por segunda vez lo que la clase ya cargó.

Seis comprobaciones justo antes de enviar

Los fallos con una clase de envío vienen menos de la sintaxis de LaTeX que de irse alejando poco a poco de la plantilla. Repasa estas seis comprobaciones de forma mecánica para que la víspera del plazo no traiga sorpresas.

  • Relee la primera línea. ¿Son las opciones de \documentclass[...] exactamente las que pide el destino? Las versiones de revisión (review, preprint, manuscript, anonymous) y las definitivas (reprint, sigconf, …) suelen diferir.
  • Devuelve el bloque de título a la forma de la plantilla. Cada clase escribe \author, las afiliaciones, el resumen y las palabras clave a su manera. Si envolviste algo en macros propias, deshazlo: si no, las comprobaciones editoriales y la conversión XML pueden no extraer los metadatos.
  • Compila la bibliografía por separado. Usa el .bst de la clase (IEEEtran, ACM-Reference-Format, splncs04, elsarticle-*, apsrev4-2), pasa BibTeX o Biber y comprueba que no quedan citas sin definir.
  • Lee el registro hasta el final. Option clash, Unused global option(s), sustituciones de fuente y párrafos que se salen por Overfull \hbox no se ven mirando solo el PDF.
  • Congela el paquete de plantilla entero. No mezcles un .cls de CTAN con un .bst viejo de un kit editorial y un esqueleto de otro año. Una línea en un README con la procedencia y la fecha evita discusiones con los coautores.
  • Comprueba la forma del entregable. Si van fuentes o PDF, los formatos de figura (EPS, PDF, PNG), las reglas de nombres de archivo y si hace falta anonimizar son normas del sistema de envío, no de la clase.