init-latex-project

Original🇺🇸 English
Translated
1 scripts

Initialize LaTeX Academic Project with standard structure, macros, and writing guide. Use when user wants to create a new LaTeX paper project for any conference or journal.

4installs
Added on

NPX Install

npx skill4agent add a-green-hand-jack/ml-research-skills init-latex-project

Initialize LaTeX Academic Project

Set up a complete LaTeX academic paper project from the standard template.

Skill Directory Layout

<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
│   ├── 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

How venue_preamble.tex works

Every venue template uses
\input{venue_preamble}
instead of a hardcoded
\usepackage{neurips_<year>}
.
init.sh
downloads the official
.sty
/
.bst
files from the venue's authoritative source (see
sources.yaml
), detects the actual filename, and writes
venue_preamble.tex
automatically.
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
└── ...
To switch submission mode (e.g., anonymous → camera-ready), only edit
venue_preamble.tex
main.tex
never needs to change.

Steps to Follow

1. Parse
$ARGUMENTS

Position/FlagMeaningRequired
First wordProject nameYes
Second wordTarget directory (default: current dir)No
--venue <name>
Conference venueNo
--git
Initialize git repoNo
--offline
Skip style-file download (creates placeholder venue_preamble.tex)No
Supported venues (by deadline month):
VenueMonthStyleSource
icml
Jantwo-columnicml.cc
acl
Febsingle-columngithub.com/acl-org/acl-style-files
iccv
Mar (biennial, odd)two-columnCVF / iccv.thecvf.com
eccv
Mar (biennial, even)single-column (LNCS)github.com/paolo-favaro/paper-template
neurips
Maysingle-columnneurips.cc
emnlp
Maysingle-columngithub.com/acl-org/acl-style-files
iclr
Sepsingle-columngithub.com/ICLR/Master-Template
cvpr
Novtwo-columngithub.com/cvpr-org/author-kit
naacl
Decsingle-columngithub.com/acl-org/acl-style-files
acm
variessingle-columnCTAN (pre-installed)

2. Run the init script

bash
bash <init-latex-project-skill-dir>/scripts/init.sh <project-name> [target-dir] [--venue <venue>] [--git]
Important: Resolve
<init-latex-project-skill-dir>
as the installed directory for this skill and use the absolute path to
init.sh
. Do not assume a Claude-specific install path.

3. Offer to immediately customize

After the script runs, ask the user if they want to:
  • Update
    sections/title.tex
    with their actual title
  • Fill in authors and affiliations in
    main.tex
  • Any other immediate adjustments

4. Print the script's output to the user

The script prints a file tree and venue-specific setup notes. Make sure the user sees these.

Venue Details

All sources are verified in
sources.yaml
.
init.sh
downloads style files automatically. Edit
venue_preamble.tex
to switch submission mode.

ICML — Jan deadline

  • Layout: Two-column
  • Doc class:
    article
    +
    \usepackage{icml{YEAR}}
    (year-specific)
  • Bibliography:
    icml{YEAR}.bst
  • MANDATORY:
    sections/impact.tex
    (Broader Impact, no page limit)
  • Note: Uses ICML-specific author macros (
    \icmltitle
    ,
    \icmlauthor
    , etc.)

ACL / EMNLP / NAACL — *ACL family

  • Layout: Single-column
  • Doc class:
    \documentclass[11pt]{article}
    +
    \usepackage[review]{acl}
    (stable name)
  • Bibliography:
    acl_natbib.bst
  • Citations:
    \citet{}
    in-text;
    \cite{}
    /
    \citep{}
    parenthetical
  • MANDATORY:
    sections/limitations.tex
    (no page limit)
  • Required if applicable:
    sections/ethics.tex

ICCV — Mar deadline (biennial, odd years: 2025, 2027, …)

  • Layout: Two-column (same CVF format as CVPR)
  • Doc class:
    \documentclass[times,10pt,twocolumn,letterpaper]{article}
    +
    \usepackage[review]{iccv}
  • Bibliography:
    ieeenat_fullname.bst
  • Note: Use
    figure*
    /
    table*
    for full-width floats

ECCV — Mar deadline (biennial, even years: 2024, 2026, …)

  • Layout: Single-column (Springer LNCS)
  • Doc class:
    \documentclass[runningheads]{llncs}
    NOT article
  • Style:
    eccv.sty
    +
    eccvabbrv.sty
  • Bibliography:
    splncs04.bst
  • Page limit: 14 pages including figures; references uncapped
  • Author format: LNCS
    \author{}\inst{}\institute{}
    macros

NeurIPS — May deadline

  • Layout: Single-column
  • Doc class:
    article
    +
    \usepackage{neurips_{YEAR}}
    (year-specific)
  • Bibliography:
    unsrtnat
    (numeric, sorted by appearance)
  • Acknowledgments: Use
    {ack}
    environment (auto-hides in anonymous mode)
  • MANDATORY:
    sections/impact.tex
    (Broader Impact, no page limit)
  • MANDATORY:
    sections/checklist.tex
    (Author Checklist, no page limit)

ICLR — Sep deadline

  • Layout: Single-column
  • Doc class:
    article
    +
    \usepackage[submitted]{iclr{YEAR}_conference}
    (year-specific)
  • Bibliography:
    iclr{YEAR}_conference.bst
  • Extra:
    sections/impact.tex
    (optional Ethics Statement)

CVPR — Nov deadline

  • Layout: Two-column
  • Doc class:
    \documentclass[times,10pt,twocolumn,letterpaper]{article}
    +
    \usepackage[review]{cvpr}
    (stable name)
  • Bibliography:
    ieeenat_fullname.bst
  • Note: Use
    figure*
    /
    table*
    for full-width floats

ACM — varies

  • Layout: Single-column (sigconf)
  • Doc class:
    \documentclass[sigconf,review,anonymous]{acmart}
    (pre-installed via CTAN)
  • Bibliography:
    ACM-Reference-Format.bst
  • Camera-ready extras:
    \acmConference
    ,
    \acmDOI
    ,
    \setcopyright
    , CCS concepts

What Is Always Included (Every Venue)

macros.tex
— complete math macro library:
  • Calligraphic
    \calA
    \calZ
    , bold
    \bA
    \bZ
    /
    \ba
    \bz
  • Blackboard bold
    \R
    \E
    \P
    \B
  • Greek shortcuts
    \sG
    \lG
    \tG
    \pa
    \half
  • Operators
    \argmin
    \argmax
    \Softmax
    \Sigmoid
    \Var
  • Sum shortcuts
    \sumN
    \sumK
    \sumM
    \sumT
  • Theorem environments (grey tcolorbox):
    theorem
    lemma
    definition
    remark
    assumption
  • Author comment macros
    \jerry{}
    \wwm{}
    \jieke{}
    etc.
Standard section files (all placeholder):
title.tex
,
abstract.tex
,
intro.tex
,
related.tex
,
method.tex
,
exp.tex
,
conclusion.tex
,
appendix.tex
,
acknowledgement.tex
bib/refs.bib
— empty with usage example

Example Invocations

/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

If the Auto-Download Fails

If
init.sh
cannot reach the venue server,
venue_preamble.tex
is created as a placeholder. Fix it:
  1. Visit the venue's author instructions page (URL is in
    sources.yaml
    ).
  2. Download the style zip manually and unpack
    .sty
    /
    .bst
    files into the project root.
  3. Edit
    venue_preamble.tex
    to add the correct
    \usepackage{...}
    line.
As a last resort, use WebSearch to find the current year's download URL and fetch it:
bash
# 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/

Package Conflict Notes

The
macros.tex
library is loaded last in all venue templates (after venue packages), so our definitions take precedence. Known conflicts:
VenuePotential ConflictResolution
ACM
acmart
redefines
\P
Our
\P = \mathbb{P}
overrides it — intentional
ACM
acmart
has its own
\cite
\let\cite\citep
in macros.tex may interfere — comment it out if needed
CVPRTwo-column layout
tcolorbox
theorem envs may span columns — switch to plain
amsthm
if needed
ICMLUses its own
hyperref
setup
Load macros.tex after
icml<year>
to avoid double-load errors
NeurIPS
algorithmic
vs
algpseudocode
Always use
algpseudocode
(lowercase
\State
,
\Require
, etc.). The older
algorithmic
package uses ALL-CAPS commands and is incompatible with modern algorithm code.
NeurIPS
cleveref
Option Clash
cleveref
must be loaded ONCE, in
main.tex
, AFTER
hyperref
. The macros.tex template also contains
\usepackage[capitalize,noabbrev]{cleveref}
— this causes an Option Clash (
capitalise
vs
capitalize
) when both files are compiled together. Fix: remove or comment out the
cleveref
line from
macros.tex
in NeurIPS projects. The NeurIPS venue template already does this correctly.
ALL
\def\(
,
\def\)
,
\def\[
,
\def\]
in macros.tex
PERMANENTLY DISABLED. These four lines redefined LaTeX's built-in math-mode delimiters (
\( \)
= inline math;
\[ \]
= display math), which broke ALL math environments (
$...$
,
\begin{equation}
,
algorithmic
states, etc.) with cascading "Missing $" and "Extra )" errors. Never re-enable. Use
\left( ... \right)
explicitly instead.
ALL
\usepackage{algorithm}
+
\usepackage{algorithmic}
in macros.tex
PERMANENTLY DISABLED. Loading both
algorithm
/
algorithmic
alongside
algpseudocode
(required by NeurIPS, ICML, ICLR) causes "Command \algorithmicindent already defined" and similar errors. The
algorithm
float wrapper should be loaded once in
main.tex
together with exactly one of
algpseudocode
(modern, recommended) or
algorithmic
(legacy).