学会クラス

投稿先から指定される 学会クラス——amsartIEEEtranelsarticlerevtex4-2acmart——は、LaTeX のドキュメントクラスのなかでいちばん誤解されている種類です。TeX Live 2024 同梱の acmart.cls を開くと、途中に \LoadClass[\ACM@fontsize, reqno]{amsart} という一行があります。計算機科学の ACM が配る投稿クラスは、アメリカ数学会のクラスの上に建っているのです。学会クラスは「配られたスタイルシート」ではなく、投稿規定を実行可能な形に書き下したものであり、しかも著者に見えないところで別のクラスやパッケージを読み込んでいます。このページでは、投稿クラスが実際に何を固定しているのか、なぜそれに逆らうと時間を失うのか、そして黙って読み込まれたパッケージがどこで牙を剥くのかを見ていきます。

学会クラスは何を固定しているのか

固定されるのは 段数・版面・書体・見出しの体裁・タイトルブロックの構造・参考文献の書式 の六つで、著者に残されるのは中身とその論理構造だけです。だから投稿先は規則の一覧ではなく、.cls と対応する .bst(BibTeX スタイル)、それに記入用テンプレートをひとそろいで配ります。原稿には \section{...}\cite{...} で意味だけを書き、体裁の判断はすべてクラスに委ねる——構造と見た目を分けるというこの原則自体は /learn/document-basics/class-preamble が扱っているので、ここでは繰り返しません。学会クラスで新しいのは、その分離が自分の趣味ではなく他人の規定によって強制される という点です。

ここから、実務でいちばん効く助言が出てきます。クラスと喧嘩しないこと。 ページ数制限はそのクラスの版面で数えられているので、\vspace を削ったり geometry で余白を詰めたりして稼いだページは、製作段階で組み直された瞬間に消えます。二段組を一段組にしたり、フォントを差し替えたりした原稿は、査読に回る前の形式チェックで突き返されることがあります。逆に、クラスに任せておけば、同じ本文をそのまま別の学会のクラスに載せ替えられます。学会クラスが著者に返してくれるのは「体裁を考えなくていい時間」であって、「体裁をいじる自由」ではありません。

入手の面でも一つ注意があります。これらのクラスは 最小構成の TeX 環境には入っていない のが普通です。TeX Live や MiKTeX をフル導入すれば amsartIEEEtranacmartelsarticlerevtex は同梱されますが、最小構成なら tlmgr install ieeetran のように個別に入れるか、出版社の配布物から .cls を取ってきて原稿と同じフォルダに置きます(llncs は手元配置が特に多い)。そして 必ず投稿先の著者向けキット(author kit/author center)から最新のテンプレートを取り直す こと。古い手元コピーを使い回して締切直前に体裁が崩れるのは、毎年どこかで起きている事故です。

amsart — アメリカ数学会のクラスと定理環境

amsart はアメリカ数学会(AMS)の論文クラスで、数学系の投稿でもっとも広く使われるだけでなく、他のクラスの土台としても使われています(冒頭で見たとおり acmart はこれを読み込みます)。クラス自身が amsmathamsfonts を用意するので、数式まわりの \usepackage はほとんど不要です。タイトルまわりは \title\author に加えて \address{...}(所属住所)、\email{...}\thanks{...}\subjclass[2020]{...}(AMS 数学主題分類)、\keywords{...} を使い、定理環境は \newtheoremamsthm\theoremstyle で組み立てます。

amsart で最初につまずくのは、たいてい 要旨の位置 です。article の癖で \maketitle のあとに abstract 環境を書くと、ログにこう出ます——Class amsart Warning: Abstract should precede \maketitle in AMS document classes。コンパイルは通ってしまうので気づきにくく、しかも要旨がタイトルブロックの外に落ちた PDF ができあがります。\maketitle の前に abstract を置くのが正解です。この作法は amsart を土台にした acmart にも受け継がれていますが、そちらは警告ではなくエラーで止まります。

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 の論文誌・会議録

IEEEtran の特徴は、同じクラスがオプション次第でまったく別の体裁に化ける ことです。\documentclass[journal]{IEEEtran} なら論文誌の二段組、\documentclass[conference]{IEEEtran} なら会議録、ほかに短報の technote、査読用の peerreviewpeerreviewca があります。compsoc(Computer Society)や comsoc(Communications Society)、transmag を足すと部会ごとの体裁に切り替わり、\documentclass[10pt,journal,compsoc]{IEEEtran} のように文字サイズと併記できます。用紙は letterpaper が既定で、a4papercspaper も選べます。

固有の作法として、要旨は abstract 環境、キーワードは専用の IEEEkeywords 環境 に書きます。これは論文誌モードでは「Index Terms」、会議モードでは「Keywords」という見出しで自動的に組まれます。著者名と所属は \IEEEauthorblockN{...}\IEEEauthorblockA{...} を組み合わせ、参考文献は BibTeX スタイル IEEEtran.bst が標準です。もう一つ、地味ですが効いてくる性質があります——IEEEtran.cls は既定で外部パッケージをほとんど読み込みません(TeX Live 2024 同梱版で \RequirePackage が現れるのは Computer/Communications Society 向けの数式フォント探索だけです)。だから hyperrefgeometry を自分で入れても衝突しにくい。次に見る acmart とはここが正反対です。テンプレートは 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 の論文誌・会議録

acmart は ACM が配る統合クラスで、以前は会議・論文誌ごとにばらばらだったクラス群を一本化したものです。体裁は format= オプションで選び、format= の部分自体は省略できます。査読投稿の既定は一段組の manuscript、多くの論文誌は acmsmall、書籍として出る会議録は sigconf、SIGPLAN 系は sigplan。見分けの目安は「acm で始まる書式は論文誌・トランザクション向け、sig で始まる書式は会議録向け」です。\documentclass[sigconf]{acmart}\documentclass[manuscript,review,anonymous]{acmart} のように書きます。なお SIGCHI 用の sigchi と SIGGRAPH 用の siggraph はすでに廃止済みで、指定するとクラスが Class acmart Warning: The format sigchi is now obsolete. I am switching to sigconf. と警告して勝手に sigconf へ切り替えます。sigchi-a は既存文書のためにオプションだけ残されていますが、ACM はこの体裁の原稿を受理しないとクラス自身が警告します。

acmart の固有の作法は、要求されるメタデータの量に集中しています。論文誌なら \acmJournal{TOMS} のように短縮名で誌名を指定し、正規論文では CCS(ACM Computing Classification System)概念\begin{CCSXML}...\end{CCSXML}\ccsdesc{...} で宣言し、\keywords{...} を添えます。所属は \affiliation{\institution{...}\city{...}\country{...}} と要素に分けて書きます。参考文献は natbib ベースの ACM-Reference-Format。そして amsart から受け継いだ要旨の作法はここでは強制で、\maketitle のあとに abstract を置くと ! Class acmart Error: Abstract must be defined before maketitle command. Please move it! で止まります。警告で済む amsart と違い、こちらは動きません。

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 は Springer の会議録シリーズ Lecture Notes in Computer Science(LNCS) と姉妹シリーズ LNAI・LNBI 用のクラスで、\documentclass{llncs} とクラス名で直接指定します。ECCV や MICCAI をはじめ、Springer から会議録を出す多数の国際会議がこの体裁を採用しており、レイアウトは article を拡張した一段組です。固有の作法は著者と所属の書き方に集中していて、LaTeX 標準にはない \institute 命令が追加されています。\author{Ivar Ekeland\inst{1} \and Roger Temam\inst{2}} のように \inst{番号} で所属番号を付け、\institute{first affiliation \and second affiliation} で所属を並べると自動で番号が振られます。メールアドレスは \institute の中に \email{...} として書きます。参考文献スタイルは splncs04\bibliographystyle{splncs04})。runningheads オプションは巻の編者向けで、単独投稿では通常不要です。

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 の論文誌

elsarticle は Elsevier の各論文誌に投稿する原稿のためのクラスで、\documentclass[preprint,12pt]{elsarticle} のように使います。既定は a4paper,10pt,oneside,onecolumn,preprint で、preprint は投稿用のゆったりした一段組。1p3p5p は掲載時の版面(一段組、二段組、要旨を通し組みにした二段組)に対応し、最終的な誌面は出版社側で組まれます。査読用に行送りを広げる review、刷り上がりに近づける final、匿名投稿用の doubleblind も用意されています。固有の作法は frontmatter 環境です。\title{...}\author{...}\affiliation{...}(旧来の \address{...} も使えます)、abstract 環境、keyword 環境をこの中にまとめて置き、\end{frontmatter} の後から本文が始まります。著者と所属はラベルで対応させ、\author[a]{...}\affiliation[a]{organization={...}, city={...}, country={...}} のように書きます。

ここに、このページ全体で一番よく踏まれる地雷があります。elsarticle.cls は終盤で \RequirePackage[\@biboptions]{natbib} を実行しており、クラスが natbib を勝手に読み込んでいます(既定の引用形式は numbers)。そうと知らずにプリアンブルへ \usepackage[authoryear]{natbib} と書くと、! LaTeX Error: Option clash for package natbib. で止まります。同じ numbers を渡した場合だけは偶然通ってしまうので、症状が出たり出なかったりして余計に厄介です。正しい直し方は三つ——クラスオプションで \documentclass[preprint,authoryear]{elsarticle} と指定する、クラスが用意した \biboptions{...} を使う、あるいは natbib の読み込み自体を止める nonatbib オプションを付ける。参考文献スタイルは elsarticle-numelsarticle-num-nameselsarticle-harv から選びます。natbib 側の引用命令は /learn/bibliography/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 — 物理系(APS / AIP)

revtex4-2 は米国物理学会(APS)と米国物理学協会(AIP)の論文誌向けクラスで、クラス名そのものにバージョンが入っています。指定は 学会(apsaip)・誌名(prlprbprxprfluids など)・体裁(preprintreprinttwocolumn を組み合わせ、\documentclass[prl,aps,reprint]{revtex4-2} のように書きます。所属の書き方が独特で、\affiliation{...} を各 \author{...} の直後に置くとその著者の所属になり、同じ所属が続く著者は自動でまとめられます。上付き番号方式にしたいときはクラスオプション superscriptaddress を使います。参考文献スタイルは apsrev4-2 です。

REVTeX も natbib を内側に抱えていますが、elsarticle とは渡すオプションが違います。revtex4-2.cls\RequirePackage[sort&compress]{natbib} を実行しており、引用番号は自動的に昇順へ並び替えられ、連番は範囲表記にまとめられます。だから \cite{c,a,b} と書いても出力は [1–3] のようになります。これは物理系の慣習に合わせた既定であって、あなたの原稿でキーを書いた順序のせいではありません。ここでも自分で \usepackage{natbib} を書き足すのは避け、クラスに任せてください。

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}

クラスが黙って読み込んだパッケージと Option clash

投稿クラスで出るエラーの多くは、クラスがすでに読み込んだパッケージを著者がもう一度オプション付きで読み込んだ ことが原因です。典型例が acmart で、TeX Live 2024 同梱版は geometryhyperreffancyhdrnatbibmicrotypebooktabscaptionsetspacexcolorgraphicx などを自分で読み込みます。だから \documentclass[sigconf]{acmart} の直後に \usepackage[margin=1in]{geometry} と書くと、! LaTeX Error: Option clash for package geometry. で止まります。elsarticlegraphicx を、そして誌面向けオプションでは geometry を読み込みます。「余白を変えようとしたらエラーになった」という症状は、たいていこれです。

対処は順番に三つ試します。第一に、そのオプションはクラスオプションとして渡せないか を疑うこと(elsarticleauthoryear がまさにそれです)。第二に、どうしても先回りしたい場合は \documentclass より \PassOptionsToPackage{...}{geometry} と書けば、クラスが読み込むときにそのオプションが合流します。第三に、そもそも余白や段組の変更は投稿規定違反であることが多いので、やらないのが正解 という可能性を先に検討する。どのパッケージが読み込まれたかを知るには、プリアンブルの先頭に \listfiles を置いてログの末尾を見るのが一番早いです。

クラス投稿先・分野覚えておくこと
amsartアメリカ数学会(数学全般)abstract\maketitle より前。acmart の土台でもあります
IEEEtranIEEE の論文誌・国際会議(電気・情報)モードはオプションで切替(journalconferencetechnote)。外部パッケージをほぼ読まない
acmartACM の論文誌・会議録(計算機科学)format= で体裁選択。CCS 概念が必須。多数のパッケージを内部で読み込む
llncsSpringer LNCS / LNAI / LNBI の会議録所属は \institute\inst{n}。参考文献は splncs04
elsarticleElsevier の論文誌(全分野)前付けは frontmatter 環境。natbib をクラスが読み込むので \biboptions を使う
revtex4-2APS / AIP の論文誌(物理)\affiliation\author の直後。natbib を sort&compress 付きで読み込む

これらは代表例にすぎません。Springer には新しい統合クラス sn-jnl があり、数学系には amsart の書籍版 amsbook や各出版社独自のクラスが、生物医学系には出版社ごとのテンプレートがあります。分野が違っても、いま見た三つの原則——体裁を変えない、テンプレートを取り直す、クラスがすでに読み込んだパッケージを二重に読み込まない——はそのまま通用します。

投稿直前に確かめる六つのこと

投稿クラスでの失敗は、LaTeX の文法ミスよりも テンプレートから少しずつ離れていったこと が原因になりがちです。締切前夜に慌てないよう、次の六点を機械的に確認してください。

  • 1行目を読み直す。 \documentclass[...] のオプションが投稿規定どおりか。査読用(reviewpreprintmanuscriptanonymous)と最終版(reprintsigconf など)で指定が違うのが普通です。
  • タイトルブロックをテンプレートの形に戻す。 \author・所属・要旨・キーワードの書き方はクラスごとに違います。自作マクロで包み直していたら元に戻すこと。出版社の検査や XML 変換が著者情報を拾えなくなります。
  • 参考文献を単体で通す。 .bst はクラス指定のもの(IEEEtranACM-Reference-Formatsplncs04elsarticle-*apsrev4-2)を使い、BibTeX/Biber を通して未定義引用が残っていないか確認する。
  • ログを最後まで見る。 Option clashUnused global option(s)、フォントの代替、Overfull \hbox による段落のはみ出しは、PDF を眺めるだけでは気づきません。
  • テンプレート一式を凍結する。 CTAN の .cls、出版社キットの古い .bst、別の年の雛形を混ぜない。入手元と入手日を README に一行書いておくと、共著者と揉めません。
  • 提出物の形式を確認する。 ソース一式か PDF か、図の形式(EPS/PDF/PNG)、ファイル名の規則、匿名化の要否は投稿システム側の規定で、クラスの管轄ではありません。