Classes académiques

Les classes académiques qu’une revue impose — amsart, IEEEtran, elsarticle, revtex4-2, acmart — forment la catégorie de classe de document LaTeX la plus mal comprise. Dans la copie d’acmart.cls livrée avec TeX Live 2024, on lit la ligne \LoadClass[\ACM@fontsize, reqno]{amsart} : la classe de soumission de l’ACM, en informatique, repose sur celle de l’American Mathematical Society. Une classe de soumission n’est pas une feuille de style qu’on vous aurait remise ; c’est le règlement du lieu de publication écrit sous forme exécutable, et elle charge discrètement d’autres classes et packages à votre insu. Cette page explique ce qu’une telle classe fixe réellement, pourquoi lutter contre elle coûte un temps qu’on n’a pas, et où exactement les packages déjà chargés vont mordre.

Ce qu’une classe de soumission fixe réellement

Six choses sont fixées : le nombre de colonnes, la zone de composition, les polices, la mise en forme des titres, la structure du bloc de titre et le format bibliographique. Il vous reste le contenu et sa structure logique. C’est pourquoi un lieu de publication distribue un ensemble — le .cls, un style bibliographique .bst assorti et un modèle à remplir — plutôt qu’une liste de règles. Dans le manuscrit, on n’écrit que du sens, \section{...} et \cite{...}, et toute question d’apparence revient à la classe. Le principe de séparation entre structure et apparence est traité par la page sur la classe et le préambule ; il n’est pas repris ici. Ce qu’ajoute une classe de soumission, c’est que cette séparation est imposée par le règlement d’autrui et non par votre goût.

D’où le conseil le plus utile qui soit : ne luttez pas contre la classe. Les limites de pages se comptent dans la zone de composition de cette classe ; les pages gagnées en supprimant des \vspace ou en resserrant les marges avec geometry disparaissent dès que la production recompose l’article. Un manuscrit passé de deux colonnes à une, ou dont les polices ont été remplacées, peut être renvoyé au contrôle de format avant même d’atteindre un relecteur. À l’inverse, laissez faire la classe et le même corps de texte migre tel quel vers la classe d’une autre société savante. Une classe de soumission rend à l’auteur du temps qu’il ne passe pas sur la mise en page, pas la liberté de la modifier.

Un détail pratique pour se les procurer : ces classes sont généralement absentes d’une installation TeX minimale. Un TeX Live ou un MiKTeX complet inclut amsart, IEEEtran, acmart, elsarticle et revtex, mais sur une configuration minimale il faut les installer une par une (tlmgr install ieeetran) ou extraire le .cls du téléchargement de l’éditeur et le poser à côté du manuscrit — llncs est particulièrement souvent conservé en local. Et toujours récupérer à nouveau le modèle courant depuis l’author kit ou l’author center du lieu de publication. Réutiliser une vieille copie locale et découvrir la veille de la date limite que la mise en page a dérivé est un accident qui se produit quelque part chaque année.

amsart — la classe de l’AMS et ses environnements de théorème

amsart est la classe d’article de l’American Mathematical Society. C’est non seulement la classe la plus répandue pour les soumissions en mathématiques, mais aussi le socle sur lequel reposent d’autres classes : comme on l’a vu, acmart la charge. La classe se procure elle-même amsmath et amsfonts, ce qui rend inutiles la plupart des \usepackage mathématiques habituels. Outre \title et \author, le bloc de titre emploie \address{...}, \email{...}, \thanks{...}, \subjclass[2020]{...} (la classification par sujets de l’AMS) et \keywords{...} ; les environnements de théorème se construisent avec \newtheorem et le \theoremstyle d’amsthm.

Le premier faux pas avec amsart concerne d’ordinaire la place du résumé. Par habitude d’article, on met l’environnement abstract après \maketitle, et le journal affiche : Class amsart Warning: Abstract should precede \maketitle in AMS document classes. C’est facile à manquer, car le document compile quand même — et l’on obtient un PDF où le résumé est tombé hors du bloc de titre. Il faut placer abstract avant \maketitle. La même convention est héritée par acmart, bâti sur amsart, sauf que là il ne s’agit pas d’un avertissement mais d’une erreur fatale.

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 — revues et conférences IEEE

La particularité d’IEEEtran est qu’une seule classe se transforme en mises en page entièrement différentes selon les options. \documentclass[journal]{IEEEtran} donne la revue à deux colonnes, \documentclass[conference]{IEEEtran} les actes de conférence ; s’y ajoutent technote pour les notes brèves et peerreview/peerreviewca pour les versions de relecture. Ajouter compsoc (Computer Society), comsoc (Communications Society) ou transmag bascule vers le style maison de la société concernée, et l’on peut y joindre une taille de police, comme dans \documentclass[10pt,journal,compsoc]{IEEEtran}. Le papier par défaut est letterpaper, avec a4paper et cspaper disponibles.

Côté conventions : le résumé va dans un environnement abstract et les mots-clés dans l’environnement dédié IEEEkeywords, automatiquement intitulé « Index Terms » en mode revue et « Keywords » en mode conférence. Auteurs et affiliations se composent avec \IEEEauthorblockN{...} et \IEEEauthorblockA{...}, et le style bibliographique standard est IEEEtran.bst. Une autre propriété, discrète mais décisive : IEEEtran.cls ne charge presque aucun package externe par défaut — dans la copie livrée avec TeX Live 2024, les seuls appels à \RequirePackage se trouvent dans la recherche de police mathématique pour les Computer et Communications Societies. Elle tolère donc remarquablement bien vos propres hyperref ou geometry, à l’exact opposé d’acmart ci-dessous. Pour les modèles, repassez par le Template Selector de l’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 — revues et actes de l’ACM

acmart est la classe unifiée distribuée par l’ACM ; elle a remplacé l’ancien ensemble éclaté de classes par conférence et par revue. On choisit l’aspect avec l’option format=, la partie format= pouvant être omise. Le défaut pour les soumissions en relecture est manuscript, à une colonne ; la plupart des revues utilisent acmsmall, les actes publiés en volume sigconf, les lieux SIGPLAN sigplan. Règle empirique : les formats commençant par acm visent les revues et transactions, ceux commençant par sig visent les actes. On écrit donc \documentclass[sigconf]{acmart} ou \documentclass[manuscript,review,anonymous]{acmart}. À noter : sigchi, comme siggraph, est obsolète. Demandez l’un ou l’autre et la classe avertit Class acmart Warning: The format sigchi is now obsolete. I am switching to sigconf. avant de basculer d’elle-même. L’option sigchi-a ne subsiste que pour les documents anciens : la classe prévient elle-même que l’ACM n’accepte pas de manuscrits dans ce format.

Les conventions d’acmart se concentrent sur la quantité de métadonnées exigée. Pour une revue, on la nomme en abrégé, \acmJournal{TOMS} ; pour un article ordinaire, on déclare les concepts CCS (ACM Computing Classification System) avec \begin{CCSXML}...\end{CCSXML} et \ccsdesc{...}, plus \keywords{...}. Les affiliations s’écrivent en éléments séparés : \affiliation{\institution{...}\city{...}\country{...}}. Les références emploient ACM-Reference-Format, fondé sur natbib. Et la règle du résumé héritée d’amsart est ici impérative : placez abstract après \maketitle et la compilation s’arrête sur ! Class acmart Error: Abstract must be defined before maketitle command. Please move it! Contrairement à amsart, qui se contente d’un avertissement, celle-ci refuse de produire quoi que ce soit.

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 série LNCS de Springer

llncs est la classe de la série d’actes Lecture Notes in Computer Science (LNCS) de Springer et de ses séries sœurs LNAI et LNBI ; on la sélectionne directement par son nom, \documentclass{llncs}. De très nombreuses conférences internationales publiant chez Springer — ECCV, MICCAI et des centaines d’autres — utilisent cette mise en page à une colonne, qui étend article. Ses conventions se concentrent sur les auteurs et les affiliations, pour lesquels la classe ajoute une commande \institute absente du LaTeX standard. On attache un numéro d’affiliation à chaque auteur avec \inst{n}, comme dans \author{Ivar Ekeland\inst{1} \and Roger Temam\inst{2}}, puis on liste les affiliations avec \institute{first affiliation \and second affiliation} ; la numérotation est automatique. Les adresses électroniques se mettent à l’intérieur d’\institute sous la forme \email{...}. Le style bibliographique est splncs04 (\bibliographystyle{splncs04}). L’option runningheads s’adresse aux éditeurs de volume et n’est normalement pas utile pour une soumission isolée.

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 — les revues Elsevier

elsarticle est la classe des manuscrits soumis aux revues Elsevier ; on l’emploie sous la forme \documentclass[preprint,12pt]{elsarticle}. Ses options par défaut sont a4paper,10pt,oneside,onecolumn,preprint, et preprint donne la mise en page de soumission, aérée et à une colonne. 1p, 3p et 5p correspondent aux maquettes publiées (une colonne, deux colonnes, deux colonnes avec résumé sur toute la largeur) ; la page finale est composée par l’éditeur. Il existe aussi review, qui élargit l’interligne pour les relecteurs, final, plus proche de l’imprimé, et doubleblind pour une soumission anonymisée. La convention est l’environnement frontmatter : \title{...}, \author{...}, \affiliation{...} (l’ancien \address{...} fonctionne toujours), l’environnement abstract et l’environnement keyword s’y placent tous, et le corps du texte commence après \end{frontmatter}. Auteurs et affiliations se répondent par étiquette : \author[a]{...} et \affiliation[a]{organization={...}, city={...}, country={...}}.

Voici la mine sur laquelle on marche le plus souvent. Vers sa fin, elsarticle.cls exécute \RequirePackage[\@biboptions]{natbib} : la classe a donc déjà chargé natbib, avec numbers comme style de citation par défaut. Écrivez \usepackage[authoryear]{natbib} dans le préambule sans le savoir et la compilation s’arrête sur ! LaTeX Error: Option clash for package natbib. La confusion redouble parce que passer le même numbers fonctionne par hasard : la panne semble intermittente. Trois corrections valables : passer le style en option de classe, \documentclass[preprint,authoryear]{elsarticle} ; utiliser le \biboptions{...} fourni par la classe ; ou supprimer complètement le chargement avec l’option nonatbib. Le style bibliographique se choisit alors parmi elsarticle-num, elsarticle-num-names et elsarticle-harv. Les commandes de citation de natbib sont traitées sur la page 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 — la physique (APS et AIP)

revtex4-2 est la classe des revues de l’American Physical Society (APS) et de l’American Institute of Physics (AIP) ; la version figure dans le nom même de la classe. On combine trois sortes d’options — la société (aps ou aip), la revue (prl, prb, prx, prfluids, etc.) et la mise en page (preprint, reprint, twocolumn) — comme dans \documentclass[prl,aps,reprint]{revtex4-2}. Les affiliations fonctionnent d’une manière inhabituelle : placez \affiliation{...} juste après chaque \author{...} et elle appartient à cet auteur, les auteurs consécutifs partageant une affiliation étant regroupés automatiquement. Pour une numérotation en exposant, employez plutôt l’option de classe superscriptaddress. Le style bibliographique est apsrev4-2.

REVTeX porte lui aussi natbib en son sein, mais avec des options différentes de celles d’elsarticle. revtex4-2.cls exécute \RequirePackage[sort&compress]{natbib} : les numéros de citation sont triés par ordre croissant et les suites consécutives sont regroupées en intervalles. Ainsi \cite{c,a,b} ressort sous la forme [1–3]. C’est un choix par défaut conforme aux usages de la physique, et non une conséquence de l’ordre dans lequel les clés ont été écrites. Là encore, évitez d’ajouter votre propre \usepackage{natbib} et laissez faire la classe.

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}

Les packages déjà chargés par la classe, et l’Option clash

La plupart des erreurs propres aux classes de soumission ont une seule cause : on charge, avec des options, un package que la classe avait déjà chargé. acmart en est l’exemple type : la copie de TeX Live 2024 tire elle-même geometry, hyperref, fancyhdr, natbib, microtype, booktabs, caption, setspace, xcolor et graphicx. Mettez \usepackage[margin=1in]{geometry} après \documentclass[sigconf]{acmart} et la compilation s’arrête sur ! LaTeX Error: Option clash for package geometry. elsarticle charge de même graphicx, ainsi que geometry sous ses options de maquette publiée. Le symptôme « j’ai voulu changer les marges et j’ai eu une erreur » vient presque toujours de là.

Trois réactions, dans cet ordre. D’abord, se demander si l’option ne peut pas passer comme option de classeauthoryear pour elsarticle est exactement ce cas. Ensuite, s’il faut vraiment prendre les devants, écrivez \PassOptionsToPackage{...}{geometry} avant \documentclass : l’option sera fusionnée au moment où la classe charge le package. Enfin, modifier les marges ou le nombre de colonnes enfreint le plus souvent le règlement de soumission : envisagez d’abord que ne rien faire soit la bonne réponse. Pour savoir ce qui a été chargé, le plus rapide est un \listfiles en tête du préambule et un coup d’œil à la fin du journal.

ClasseLieu de publication / domaineÀ retenir
amsartAmerican Mathematical Society (mathématiques)abstract avant \maketitle ; base d’acmart
IEEEtranRevues et conférences IEEE (électricité, informatique)mode choisi par option (journal, conference, technote) ; ne charge presque aucun package
acmartRevues et actes de l’ACM (informatique)aspect choisi par format= ; concepts CCS obligatoires ; charge de nombreux packages
llncsActes Springer LNCS / LNAI / LNBIaffiliations via \institute et \inst{n} ; bibliographie splncs04
elsarticleRevues Elsevier (tous domaines)préliminaires dans l’environnement frontmatter ; la classe charge natbib, d’où \biboptions
revtex4-2Revues APS / AIP (physique)\affiliation suit chaque \author ; natbib est chargé avec sort&compress

Ce ne sont là que des exemples représentatifs. Springer possède aussi une classe unifiée plus récente, sn-jnl ; les mathématiques disposent d’amsbook, pendant livre d’amsart, ainsi que de classes propres à divers éditeurs ; les éditeurs biomédicaux fournissent leurs propres modèles. Quel que soit le domaine, les trois principes que l’on vient de voir restent valables : ne pas toucher à la mise en page, récupérer à nouveau le modèle, et ne jamais charger une seconde fois ce que la classe a déjà chargé.

Six vérifications juste avant de soumettre

Les échecs avec une classe de soumission tiennent moins à la syntaxe LaTeX qu’au fait de s’éloigner peu à peu du modèle. Passez ces six vérifications de façon mécanique pour que la veille de la date limite reste sans surprise.

  • Relisez la première ligne. Les options de \documentclass[...] correspondent-elles exactement à ce qu’exige le lieu de publication ? Les versions de relecture (review, preprint, manuscript, anonymous) et les versions définitives (reprint, sigconf, …) diffèrent normalement.
  • Rendez au bloc de titre la forme du modèle. Chaque classe écrit \author, les affiliations, le résumé et les mots-clés à sa manière. Si vous avez enveloppé quoi que ce soit dans vos propres macros, défaites-le : sinon les contrôles éditeur et la conversion XML risquent de ne pas extraire les métadonnées.
  • Compilez la bibliographie à part. Utilisez le .bst de la classe (IEEEtran, ACM-Reference-Format, splncs04, elsarticle-*, apsrev4-2), passez BibTeX ou Biber et vérifiez qu’aucune citation ne reste indéfinie.
  • Lisez le journal jusqu’au bout. Option clash, Unused global option(s), substitutions de police et paragraphes qui dépassent via Overfull \hbox sont invisibles si l’on ne regarde que le PDF.
  • Gelez l’ensemble du modèle. Ne mélangez pas un .cls de CTAN, un vieux .bst d’un kit éditeur et un squelette d’une autre année. Une ligne dans un README indiquant la provenance et la date évite bien des discussions entre coauteurs.
  • Vérifiez la forme du livrable. Sources ou PDF, formats d’images (EPS, PDF, PNG), règles de nommage des fichiers et anonymisation éventuelle relèvent du système de soumission, pas de la classe.