mcpField
I
init-latex-project

init-latex-project

github.com/a-green-hand-jackドキュメント57 回インストール
リポジトリ

init-latex-project について

init-latex-project は、汎用テンプレートや学会テンプレートから LaTeX 論文プロジェクトを作成するスキルです。会場固有のファイルや執筆ガイドを用意し、投稿モードの切り替えは生成した専用プリアンブルで行います。

主な機能

  1. 01汎用または学会向けプロジェクトの作成
  2. 02公式学会スタイルファイルの取得
  3. 03venue_preamble.tex による投稿モード切り替え
  4. 04数式マクロと論文セクションの同梱
  5. 05エージェントガイドとソース管理ルールの追加

活用シーン

  1. 01対応学会向け論文の開始
  2. 02汎用 arXiv 論文や白書の作成
  3. 03匿名投稿からカメラレディへの切り替え
  4. 04Overleaf/GitHub ワークフローのプロジェクトガイド設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/a-green-hand-jack/ml-research-skills --skill init-latex-project

インストール後、Claude Code で/init-latex-projectを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

sources.yaml
scripts/
init.sh
templates/
AGENTS.md
CLAUDE.md
gitignore
macros.tex
main.tex
templates/venues/acl/
main.tex
templates/venues/acm/
main.tex
templates/venues/cvpr/
main.tex
templates/venues/eccv/
main.tex
templates/venues/emnlp/
main.tex
templates/venues/iccv/
main.tex
templates/venues/iclr/
main.tex
templates/venues/icml/
main.tex
templates/venues/naacl/
main.tex
templates/venues/neurips/
main.tex

詳細

LaTeX 学術プロジェクトを初期化する

標準テンプレートから、LaTeX 論文プロジェクト一式をセットアップします。

このスキルや生成される共有論文ソースに、ローカルマシンでの TeX の利用可否を記録しないでください。latexmk、pdflatex、xelatex、lualatex、tectonic、tlmgr のいずれが存在するかは、ユーザーごとのマシンに関する実行時の情報であり、永続的なプロジェクト状態ではありません。永続的なプロジェクト状態として記録するのは、論文のコンパイルバックエンドである local、Overleaf-GitHub、CI、unknown のいずれかです。

スキルのディレクトリ構成

<installed-skill-dir>/
├── SKILL.md
├── sources.yaml                    # Authoritative download sources per venue (verified)
├── templates/
│   ├── macros.tex                  # Full math macro library
│   ├── main.tex                    # Generic arXiv/whitepaper template
│   ├── gitignore                   # Paper-source hygiene defaults
│   ├── AGENTS.md                   # Universal/Codex writing rules
│   ├── CLAUDE.md                   # Writing rules for AI agents
│   └── venues/
│       ├── icml/main.tex           # ICML two-column template
│       ├── acl/main.tex            # ACL/*ACL single-column template
│       ├── emnlp/main.tex          # EMNLP (same acl.sty as ACL)
│       ├── naacl/main.tex          # NAACL (same acl.sty as ACL)
│       ├── iccv/main.tex           # ICCV two-column template
│       ├── eccv/main.tex           # ECCV single-column (Springer LNCS)
│       ├── neurips/main.tex        # NeurIPS single-column template
│       ├── iclr/main.tex           # ICLR single-column template
│       ├── cvpr/main.tex           # CVPR two-column template
│       └── acm/main.tex            # ACM SIGCONF template
└── scripts/
    └── init.sh                     # Builds project + downloads official style files

venue_preamble.tex の仕組み

すべての学会テンプレートでは、ハードコードされた \usepackage{neurips_<year>} の代わりに \input{venue_preamble} を使用します。init.sh は、学会の正式な配布元(sources.yaml を参照)から公式の .sty/.bst ファイルをダウンロードし、 実際のファイル名を検出して、venue_preamble.tex を自動的に生成します。

project/
├── main.tex              ← \input{venue_preamble}  (stable, never changes)
├── venue_preamble.tex    ← generated by init.sh  (edit here to change mode)
├── neurips_<year>.sty    ← downloaded from neurips.cc
└── ...

投稿モード(匿名投稿からカメラレディ版など)を切り替えるには、venue_preamble.tex だけを編集してください。main.tex を変更する必要はありません。


手順

1. $ARGUMENTS を解析する
位置/フラグ意味必須
最初の単語プロジェクト名はい
2 番目の単語対象ディレクトリ(デフォルト:現在のディレクトリ)いいえ
--venue <name>学会会場いいえ
--gitGit リポジトリを初期化するいいえ
--offlineスタイルファイルのダウンロードをスキップする(プレースホルダーの venue_preamble.tex を作成)いいえ

対応する学会(締切月順):

学会月スタイル配布元
icml1 月2 段組icml.cc
acl2 月1 段組github.com/acl-org/acl-style-files
iccv3 月(隔年、奇数年)2 段組CVF / iccv.thecvf.com
eccv3 月(隔年、偶数年)1 段組(LNCS)github.com/paolo-favaro/paper-template
neurips5 月1 段組neurips.cc
emnlp5 月1 段組github.com/acl-org/acl-style-files
iclr9 月1 段組github.com/ICLR/Master-Template
cvpr11 月2 段組github.com/cvpr-org/author-kit
naacl12 月1 段組github.com/acl-org/acl-style-files
acm変動1 段組CTAN(事前インストール済み)
2. 初期化スクリプトを実行する
bash <init-latex-project-skill-dir>/scripts/init.sh <project-name> [target-dir] [--venue <venue>] [--git]

重要:<init-latex-project-skill-dir> は、このスキルのインストール先ディレクトリとして解決し、init.sh には絶対パスを使用してください。Claude 固有のインストールパスを前提にしないでください。

3. すぐにカスタマイズするか確認する

スクリプトの実行後、次の作業を行うかユーザーに尋ねてください。

  • sections/title.tex を実際のタイトルに更新する
  • main.tex に著者名と所属を記入する
  • その他、すぐに反映したい調整を行う
4. コンパイルのワークフローを記録する

論文をローカル、GitHub 経由の Overleaf、CI のいずれでコンパイルするのか、またはワークフローが不明なのかを確認します。現在のユーザーの OS やインストール済みツールだけを根拠に、プロジェクトのコンパイル先を推測しないでください。

選択したコンパイル先は、利用できる場合、.agent/worktree-status.md やルートのメモなど、プロジェクト/ワークツリーのメモリに記録します。コミット対象となる共有の論文ソースには、絶対パスのローカルツールのパスや「このマシンには TeX がある/ない」といった情報を記録しないでください。

Overleaf/GitHub プロジェクトの場合:

  • 論文リポジトリに GitHub リモートを設定できるようにします
  • 編集の検証だけを目的に、ユーザーに TeX Live、MacTeX、または不足している TeX パッケージのインストールを求めないでください
  • 論文の編集後に、反射的にローカルのコンパイルコマンドを実行しないでください
  • ローカルの静的チェック、任意の tex-fmt によるソース書式チェック、Git の差分確認、コミット、プッシュを行います
  • コンパイルの信頼できる情報源として、Overleaf のコンパイルログと PDF プレビューを扱います
  • Overleaf でコンパイルエラーが発生したら、ソースをローカルで修正して再度プッシュします

ローカルでコンパイルするプロジェクトの場合:

  • command -v を使って実行時に利用可能なコンパイラを検出しますが、検出したパスはコミットしないでください
  • プロジェクトの方針またはユーザーの依頼でローカルコンパイルが検証方法に指定されている場合に限り、ローカルでコンパイルします
  • 現在のマシンに想定されるコンパイラがない場合は、その不一致を報告し、Overleaf/GitHub、CI、またはローカルツールのインストールのどれを使うか尋ねてください

tex-fmt がインストールされている場合は、デフォルトのソース書式チェッカーとして記録します:

tex-fmt --check --nowrap --recursive .

生成された論文ソースを、黙って書式変更しないでください。ユーザーが書式変更を希望する場合は、tex-fmt --nowrap --recursive . を実行し、コミットまたはプッシュの前に差分を確認します。プロジェクトローカルの tex-fmt 設定がある場合は、それを使用してください。

5. エージェント向けガイダンスの方針を記録する

生成された論文リポジトリには、次の両方を含めます:

  • AGENTS.md:論文固有の執筆、コンパイル、図、表、ソースの衛生管理に関するルールを記載する、汎用/Codex 用のエントリーポイント
  • CLAUDE.md:同じ実効的な方針を記載する、Claude Code 用のエントリーポイント
  • .gitignore:意図的に強制追加しない限り、.agent/、AGENTS.md、CLAUDE.md、生の CSV、内部結果資料、プロヴェナンス台帳、ノートブック、プロットスクリプトを、公開される論文ソースから除外する、論文固有のソース可視性のデフォルト設定

2 つのエージェント向けガイダンスファイルは、tex-fmt のチェック/書式設定ポリシーも含め、意味的に整合させてください。デフォルトではローカル/エージェント専用のガイダンスとして扱います。論文ブランチが Overleaf にリンクされている、または共著者に見える状態である場合、ユーザーがエージェント向けガイダンスの公開を明示的に選択しない限り、プッシュしないでください。

6. プロジェクトルート内では論文のバージョン方針を記録する

この論文リポジトリが project-init のレイアウトの一部である場合、投稿先ごとの論文バージョンは通常、paper/ 内にコピーしたフォルダーとしてではなく、同階層の paper-worktrees/ 内に論文ワークツリーとして分離することを記録します。

次の場合は論文ワークツリーを使用します:

  • 同じプロジェクトを別の学会テンプレートに合わせる
  • LaTeX ソースを公開できる arXiv/プレプリント版を準備する
  • 採択後にカメラレディ版を仕上げる
  • 明確な終了条件を設けて、論文に限った反論対応の編集を行う

arXiv またはソースを公開するリリースでは、内部向けの図/表の説明、実験のプロヴェナンスに関するメモ、査読者向けメモ、TODO、著者コメント用マクロ、プライベートなパス、非表示コメントを、リリースする .tex ソースに含めないでください。こうした説明/プロヴェナンス資料は、.agent/、ルートの memory/、またはプライベートなプロジェクト資料に保存します。

メインの論文ブランチが Overleaf/GitHub にリンクされている場合は、これを author-visible として扱います。論文ソースと論文向けアセットは含めて構いませんが、.agent/、AGENTS.md、CLAUDE.md、生の CSV、内部結果資料、プロットスクリプト、ノートブック、査読戦略、プライベートなパスは、ルート/プライベートメモリ、またはエージェント専用の論文ワークツリーに保管してください。

匿名の学会投稿では、投稿先の匿名性と書式モードを確実に守ってください。投稿先がソースのアップロードを求めている場合、ソースコメントが安全だと決めつけないでください。

7. スクリプトの出力をユーザーに表示する

スクリプトはファイルツリーと、投稿先ごとのセットアップに関する注意事項を出力します。これらがユーザーに表示されるようにしてください。


投稿先の詳細

すべてのソースは sources.yaml で検証されています。init.sh がスタイルファイルを自動的にダウンロードします。 投稿モードを切り替えるには venue_preamble.tex を編集してください。

ICML — 1月締め切り
  • レイアウト:2段組
  • ドキュメントクラス:article + \usepackage{icml{YEAR}}(年ごとに異なる)
  • 参考文献スタイル:icml{YEAR}.bst
  • 必須:sections/impact.tex(幅広い影響、ページ数制限なし)
  • 注記:ICML 固有の著者用マクロ(\icmltitle、\icmlauthor など)を使用します
ACL / EMNLP / NAACL — *ACL ファミリー
  • レイアウト:1段組
  • ドキュメントクラス:\documentclass[11pt]{article} + \usepackage[review]{acl}(名前は固定)
  • 参考文献スタイル:acl_natbib.bst
  • 引用:本文中では \citet{}、括弧内では \cite{}/\citep{}
  • 必須:sections/limitations.tex(ページ数制限なし)
  • 該当する場合に必須:sections/ethics.tex
ICCV — 3月締め切り(隔年、奇数年:2025、2027、…)
  • レイアウト:2段組(CVPR と同じ CVF 形式)
  • ドキュメントクラス:\documentclass[times,10pt,twocolumn,letterpaper]{article} + \usepackage[review]{iccv}
  • 参考文献スタイル:ieeenat_fullname.bst
  • 注記:全幅のフロートには figure*/table* を使用します
ECCV — 3月締め切り(隔年、偶数年:2024、2026、…)
  • レイアウト:1段組(Springer LNCS)
  • ドキュメントクラス:\documentclass[runningheads]{llncs} — article ではありません
  • スタイル:eccv.sty + eccvabbrv.sty
  • 参考文献スタイル:splncs04.bst
  • ページ数制限:図を含めて14ページ、参考文献は上限なし
  • 著者形式:LNCS の \author{}\inst{}\institute{} マクロ
NeurIPS — 5月締め切り
  • レイアウト:1段組
  • ドキュメントクラス:article + \usepackage{neurips_{YEAR}}(年ごとに異なる)
  • 参考文献スタイル:unsrtnat(数値形式、出現順にソート)
  • 謝辞:{ack} 環境を使用します(匿名モードでは自動的に非表示)
  • 必須:sections/impact.tex(幅広い影響、ページ数制限なし)
  • 必須:sections/checklist.tex(著者チェックリスト、ページ数制限なし)
ICLR — 9月締め切り
  • レイアウト:1段組
  • ドキュメントクラス:article + \usepackage[submitted]{iclr{YEAR}_conference}(年ごとに異なる)
  • 参考文献スタイル:iclr{YEAR}_conference.bst
  • 追加項目:sections/impact.tex(倫理声明、任意)
CVPR — 11月締め切り
  • レイアウト:2段組
  • ドキュメントクラス:\documentclass[times,10pt,twocolumn,letterpaper]{article} + \usepackage[review]{cvpr}(名前は固定)
  • 参考文献スタイル:ieeenat_fullname.bst
  • 注記:全幅のフロートには figure*/table* を使用します
ACM — 締め切りはさまざま
  • レイアウト:1段組(sigconf)
  • ドキュメントクラス:\documentclass[sigconf,review,anonymous]{acmart}(CTAN 経由で事前インストール済み)
  • 参考文献スタイル:ACM-Reference-Format.bst
  • カメラレディ版の追加項目:\acmConference、\acmDOI、\setcopyright、CCS 概念

すべての投稿先に常に含まれるもの

macros.tex — 数学マクロの完全なライブラリ:

  • カリグラフィ体 \calA…\calZ、太字 \bA…\bZ/\ba…\bz
  • 黒板太字 \R \E \P \B
  • ギリシャ文字のショートカット \sG \lG \tG \pa \half
  • 演算子 \argmin \argmax \Softmax \Sigmoid \Var
  • 総和のショートカット \sumN \sumK \sumM \sumT
  • 定理環境(グレーの tcolorbox):theorem lemma definition remark assumption
  • 著者コメント用マクロ \jerry{} \wwm{} \jieke{} など

標準のセクションファイル(すべてプレースホルダー): title.tex、abstract.tex、intro.tex、related.tex、method.tex、exp.tex、conclusion.tex、appendix.tex、acknowledgement.tex

bib/refs.bib — 使用例付きの空ファイル


呼び出し例

/init-latex-project my-new-paper                                  # generic arXiv
/init-latex-project my-icml-paper   ~/Papers --venue icml   --git
/init-latex-project my-acl-paper    ~/Papers --venue acl    --git
/init-latex-project my-iccv-paper   .        --venue iccv
/init-latex-project my-eccv-paper   .        --venue eccv
/init-latex-project my-neurips-paper .       --venue neurips --git
/init-latex-project my-emnlp-paper  .        --venue emnlp
/init-latex-project my-iclr-paper   ~/Papers --venue iclr   --git
/init-latex-project my-cvpr-paper   .        --venue cvpr
/init-latex-project my-naacl-paper  .        --venue naacl
/init-latex-project my-acm-paper    .        --venue acm
/init-latex-project my-paper-offline . --venue neurips --offline  # skip download

自動ダウンロードに失敗した場合

init.sh が会場のサーバーに接続できない場合、venue_preamble.tex はプレースホルダーとして作成されます。次の手順で修正してください。

  1. 会場の執筆者向けガイドページにアクセスします(URL は sources.yaml に記載されています)。
  2. スタイルファイルの ZIP を手動でダウンロードし、.sty/.bst ファイルを展開してプロジェクトのルートに配置します。
  3. venue_preamble.tex を編集し、正しい \usepackage{...} の行を追加します。

最終手段として、WebSearch を使ってその年の最新のダウンロード URL を探し、ファイルを取得します。

# Example for NeurIPS <year>:
curl -fsSL https://media.nips.cc/Conferences/<year>/Styles/neurips_<year>.zip -o /tmp/n.zip
unzip -j /tmp/n.zip "*.sty" -d /path/to/project/

パッケージの競合に関する注意事項

macros.tex ライブラリは、すべての会場テンプレートで最後(会場のパッケージの後)に読み込まれるため、定義は当ライブラリのものが優先されます。既知の競合は次のとおりです。

会場競合の可能性解決方法
ACMacmart が \P を再定義する当ライブラリの \P = \mathbb{P} で上書きします(意図した動作です)
ACMacmart が独自の \cite を定義しているmacros.tex 内の \let\cite\citep が干渉する場合があります。必要に応じてコメントアウトしてください
CVPR2 段組みレイアウトtcolorbox の定理環境が段をまたぐ場合があります。必要に応じて標準の amsthm に切り替えてください
ICML独自の hyperref 設定を使用する二重読み込みエラーを避けるため、icml<year> の後に macros.tex を読み込みます
NeurIPSalgorithmic と algpseudocode の競合常に algpseudocode(小文字の \State、\Require など)を使用してください。旧式の algorithmic パッケージはすべて大文字のコマンドを使用するため、最新のアルゴリズムコードとは互換性がありません。
NeurIPScleveref のオプション競合cleveref は hyperref の後に main.tex で一度だけ読み込む必要があります。macros.tex のテンプレートにも \usepackage[capitalize,noabbrev]{cleveref} が含まれており、両方のファイルを一緒にコンパイルすると、(capitalise と capitalize の)オプション競合が発生します。対処方法:NeurIPS プロジェクトでは、macros.tex の cleveref の行を削除するかコメントアウトしてください。NeurIPS の会場テンプレートでは、すでに正しく設定されています。
すべてmacros.tex 内の \def\(、\def\)、\def\[、\def\]恒久的に無効化されています。この 4 行は LaTeX 組み込みの数式モード区切り文字(\( \) = インライン数式、\[ \] = ディスプレイ数式)を再定義し、あらゆる数式環境($...$、\begin{equation}、algorithmic の状態など)で「Missing $」や「Extra )」エラーが連鎖的に発生する原因となりました。再度有効にしないでください。代わりに \left( ... \right) を明示的に使用してください。
すべてmacros.tex 内の \usepackage{algorithm} と \usepackage{algorithmic}恒久的に無効化されています。algorithm/algorithmic を(NeurIPS、ICML、ICLR で必要な)algpseudocode と併せて読み込むと、「Command \algorithmicindent already defined」などのエラーが発生します。algorithm のフロートラッパーは、main.tex で algpseudocode(最新式で推奨)または algorithmic(旧式)のいずれか一方だけと一緒に、一度だけ読み込んでください。

コメント