Academic classes

The academic classes a journal hands you — amsart, IEEEtran, elsarticle, revtex4-2, acmart — are the most misunderstood kind of LaTeX document class. Open the copy of acmart.cls shipped with TeX Live 2024 and you find the line \LoadClass[\ACM@fontsize, reqno]{amsart}: the submission class of the ACM, in computer science, is built on top of the American Mathematical Society’s. A submission class is not a stylesheet you were given. It is a venue’s formatting rules written out as executable code, and it quietly loads other classes and packages behind your back. This page covers what such a class actually constrains, why fighting it costs time you do not have, and exactly where the packages it already loaded will bite.

What a submission class actually constrains

Six things are fixed: the number of columns, the type area, the fonts, the heading design, the structure of the title block, and the bibliography format. What remains yours is the content and its logical structure. That is why a venue ships a bundle — the .cls, a matching .bst bibliography style, and a fill-in template — rather than a list of rules. You write only meaning in the manuscript, \section{...} and \cite{...}, and hand every question of appearance to the class. The principle of separating structure from appearance is covered on the class-and-preamble page and is not re-argued here. What is new with a submission class is that the separation is enforced by somebody else’s rulebook, not by your taste.

From this follows the single most useful piece of advice: do not fight the class. Page limits are counted in that class’s type area, so pages you win by deleting \vspace or squeezing the margins with geometry vanish the moment production re-sets the paper. A manuscript switched from two columns to one, or with substituted fonts, can be bounced at the format check before a reviewer ever sees it. Leave the class alone, on the other hand, and the same body text moves to another society’s class unchanged. What a submission class gives an author is time not spent thinking about layout — not the freedom to change it.

There is a practical wrinkle in getting hold of them: these classes are usually absent from a minimal TeX installation. A full TeX Live or MiKTeX bundles amsart, IEEEtran, acmart, elsarticle, and revtex, but on a minimal setup you install them one at a time (tlmgr install ieeetran) or take the .cls from the publisher’s download and drop it beside your manuscript — llncs in particular is usually kept locally. And always re-fetch the current template from the venue’s author kit or author center. Reusing a stale local copy and discovering the layout has drifted the night before a deadline is an accident that happens somewhere every year.

amsart — the AMS class and its theorem environments

amsart is the article class of the American Mathematical Society. It is not only the most widely used class for mathematical submissions but also the foundation other classes stand on — as we saw, acmart loads it. The class arranges for amsmath and amsfonts itself, so most of the usual maths \usepackage lines are unnecessary. Beyond \title and \author, the title block uses \address{...}, \email{...}, \thanks{...}, \subjclass[2020]{...} (the AMS Mathematics Subject Classification) and \keywords{...}, while theorem environments are assembled with \newtheorem and the \theoremstyle of amsthm.

The first thing that trips people up in amsart is usually where the abstract goes. Out of article habit you put the abstract environment after \maketitle, and the log says: Class amsart Warning: Abstract should precede \maketitle in AMS document classes. It is easy to miss because the document still compiles — and you get a PDF with the abstract dropped outside the title block. Put abstract before \maketitle. The same convention is inherited by acmart, which is built on amsart, except that there it is not a warning but a hard error.

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 — IEEE journals and conferences

The distinctive thing about IEEEtran is that one class turns into completely different layouts depending on its options. \documentclass[journal]{IEEEtran} gives the two-column journal; \documentclass[conference]{IEEEtran} gives conference proceedings; there is also technote for brief papers and peerreview/peerreviewca for review copies. Adding compsoc (Computer Society), comsoc (Communications Society) or transmag switches to that society’s house style, and you can combine a font size, as in \documentclass[10pt,journal,compsoc]{IEEEtran}. The default paper is letterpaper, with a4paper and cspaper available.

As for conventions: the summary goes in an abstract environment and the keywords in a dedicated IEEEkeywords environment, which is automatically headed “Index Terms” in journal mode and “Keywords” in conference mode. Authors and affiliations combine \IEEEauthorblockN{...} with \IEEEauthorblockA{...}, and the standard bibliography style is IEEEtran.bst. There is one further, quiet property that matters: IEEEtran.cls loads almost no external packages by default — in the copy shipped with TeX Live 2024 the only \RequirePackage calls sit in the maths-font search for the Computer and Communications Societies. That makes it unusually tolerant of your own hyperref or geometry, the exact opposite of acmart below. For templates, re-fetch from the IEEE Template Selector.

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 — ACM journals and proceedings

acmart is the consolidated class distributed by the ACM; it replaced the older, fragmented set of per-conference and per-journal classes. You pick the look with the format= option, and the format= part itself may be omitted. The default for review submissions is the single-column manuscript; most journals use acmsmall; proceedings published as books use sigconf; SIGPLAN venues use sigplan. A rule of thumb: formats beginning with acm are for journals and transactions, those beginning with sig are for proceedings. So you write \documentclass[sigconf]{acmart} or \documentclass[manuscript,review,anonymous]{acmart}. Note that sigchi, and siggraph too, are obsolete: ask for either and the class warns Class acmart Warning: The format sigchi is now obsolete. I am switching to sigconf. before switching you over. The sigchi-a option survives only for legacy documents — the class itself warns that ACM will not accept manuscripts in that format.

The conventions of acmart are concentrated in how much metadata it wants. For a journal you name it with a short form, \acmJournal{TOMS}; for a regular paper you declare CCS (ACM Computing Classification System) concepts with \begin{CCSXML}...\end{CCSXML} and \ccsdesc{...}, plus \keywords{...}. Affiliations are written out in parts: \affiliation{\institution{...}\city{...}\country{...}}. References use the natbib-based ACM-Reference-Format. And the abstract convention inherited from amsart is compulsory here — put abstract after \maketitle and the run stops with ! Class acmart Error: Abstract must be defined before maketitle command. Please move it! Unlike amsart, which only warns, this one refuses to build.

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 — Springer LNCS

llncs is the class for Springer’s proceedings series Lecture Notes in Computer Science (LNCS) and its siblings LNAI and LNBI; you select it directly by name, \documentclass{llncs}. A great many international conferences that publish through Springer — ECCV, MICCAI and hundreds more — use this layout, which is single-column and extends article. Its conventions concentrate on authors and affiliations, for which the class adds an \institute command that standard LaTeX does not have. Attach an affiliation number to each author with \inst{n}, as in \author{Ivar Ekeland\inst{1} \and Roger Temam\inst{2}}, then list the affiliations with \institute{first affiliation \and second affiliation}; the numbering happens automatically. Email addresses go inside \institute as \email{...}. The bibliography style is splncs04 (\bibliographystyle{splncs04}). The runningheads option is meant for volume editors and is normally unnecessary for a single submission.

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 — Elsevier journals

elsarticle is the class for manuscripts submitted to Elsevier journals, used as \documentclass[preprint,12pt]{elsarticle}. Its defaults are a4paper,10pt,oneside,onecolumn,preprint, and preprint gives the roomy single-column submission layout. 1p, 3p and 5p correspond to the published page designs (one column, two columns, and two columns with the abstract set across); the final journal page is set by the publisher. There is also review, which widens the leading for referees, final, which moves closer to the printed look, and doubleblind for anonymised submission. The convention here is the frontmatter environment: \title{...}, \author{...}, \affiliation{...} (the older \address{...} still works), the abstract environment and the keyword environment all go inside it, and the body starts after \end{frontmatter}. Authors and affiliations are matched by label, \author[a]{...} against \affiliation[a]{organization={...}, city={...}, country={...}}.

Here sits the mine most often stepped on. Near its end elsarticle.cls executes \RequirePackage[\@biboptions]{natbib}, so the class has already loaded natbib for you — with numbers as the default citation style. Write \usepackage[authoryear]{natbib} in the preamble without knowing that, and the run stops with ! LaTeX Error: Option clash for package natbib. It is doubly confusing because passing the same numbers happens to work, so the failure looks intermittent. There are three correct fixes: pass the style as a class option, \documentclass[preprint,authoryear]{elsarticle}; use the class’s own \biboptions{...}; or suppress the load entirely with the nonatbib option. The bibliography style is then one of elsarticle-num, elsarticle-num-names or elsarticle-harv. Citation commands on the natbib side are covered on the natbib page.

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 — physics (APS and AIP)

revtex4-2 is the class for the journals of the American Physical Society (APS) and the American Institute of Physics (AIP); the version is part of the class name itself. You combine three kinds of option — the society (aps or aip), the journal (prl, prb, prx, prfluids and so on) and the layout (preprint, reprint, twocolumn) — as in \documentclass[prl,aps,reprint]{revtex4-2}. Affiliations work unusually: put \affiliation{...} directly after each \author{...} and it belongs to that author, with consecutive authors sharing an affiliation collated automatically. For superscript numbering instead, use the class option superscriptaddress. The bibliography style is apsrev4-2.

REVTeX also carries natbib inside, but with different options from elsarticle. revtex4-2.cls runs \RequirePackage[sort&compress]{natbib}, which means citation numbers are sorted into ascending order and consecutive runs are collapsed into ranges. So \cite{c,a,b} comes out as something like [1–3]. That is a deliberate default matching physics conventions, not a consequence of the order in which you wrote the keys. Here too, resist adding your own \usepackage{natbib} and let the class do it.

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}

The packages the class already loaded, and Option clash

Most errors specific to a submission class come from one cause: the author loads, with options, a package the class had already loaded. acmart is the classic case — the copy in TeX Live 2024 pulls in geometry, hyperref, fancyhdr, natbib, microtype, booktabs, caption, setspace, xcolor and graphicx on its own. Put \usepackage[margin=1in]{geometry} after \documentclass[sigconf]{acmart} and the run stops with ! LaTeX Error: Option clash for package geometry. elsarticle likewise loads graphicx, and geometry under its published-page options. The symptom “I tried to change the margins and got an error” is almost always this.

Work through three responses in order. First, ask whether the option can be passed as a class option insteadauthoryear for elsarticle is exactly that case. Second, if you really must get in first, put \PassOptionsToPackage{...}{geometry} before \documentclass; the option is then merged in when the class loads the package. Third, remember that changing margins or columns usually violates the submission rules in the first place, so consider that not doing it may be the right answer. To find out what was loaded, the fastest route is \listfiles at the top of the preamble and a look at the end of the log.

ClassVenue / fieldWorth remembering
amsartAmerican Mathematical Society (mathematics)abstract goes before \maketitle; also the base of acmart
IEEEtranIEEE journals and conferences (electrical, computing)mode chosen by option (journal, conference, technote); loads almost no packages
acmartACM journals and proceedings (computer science)look chosen by format=; CCS concepts required; loads many packages internally
llncsSpringer LNCS / LNAI / LNBI proceedingsaffiliations via \institute and \inst{n}; bibliography splncs04
elsarticleElsevier journals (all fields)front matter in the frontmatter environment; the class loads natbib, so use \biboptions
revtex4-2APS / AIP journals (physics)\affiliation follows each \author; natbib is loaded with sort&compress

These are only representative examples. Springer also has a newer consolidated class, sn-jnl; mathematics has amsbook, the book counterpart of amsart, alongside various publisher-specific classes; biomedical publishers ship their own templates. Whatever the field, the three principles just seen carry over unchanged: do not alter the layout, re-fetch the template, and never load a second time what the class has already loaded.

Six things to check right before submitting

Failures with a submission class come less from LaTeX syntax than from drifting a little at a time away from the template. Run through these six checks mechanically so that the night before the deadline holds no surprises.

  • Re-read line one. Are the \documentclass[...] options exactly what the venue asks for? Review builds (review, preprint, manuscript, anonymous) and camera-ready builds (reprint, sigconf, …) normally differ.
  • Restore the title block to the template’s shape. Every class writes \author, affiliations, abstract and keywords differently. If you wrapped any of it in your own macros, undo that — publisher checks and XML conversion may otherwise fail to extract the metadata.
  • Build the bibliography on its own. Use the class’s .bst (IEEEtran, ACM-Reference-Format, splncs04, elsarticle-*, apsrev4-2), run BibTeX or Biber, and confirm no undefined citations remain.
  • Read the log to the end. Option clash, Unused global option(s), font substitutions and paragraphs sticking out through Overfull \hbox are invisible if you only look at the PDF.
  • Freeze the whole template bundle. Do not mix a .cls from CTAN with an old .bst from a publisher kit and a skeleton from a different year. One line in a README recording where and when you got it saves arguments with co-authors.
  • Check the shape of the deliverable. Sources or PDF, figure formats (EPS, PDF, PNG), file-naming rules and whether anonymisation is required are rules of the submission system, not of the class.