关于 init-latex-project
init-latex-project 是用于从通用模板或会议模板创建 LaTeX 学术论文项目的技能。它会设置会议专用文件和写作指南,并将投稿模式切换集中在单独生成的导言文件中。
主要功能
- 01初始化通用或会议论文项目
- 02下载官方会议样式文件
- 03通过 venue_preamble.tex 切换投稿模式
- 04附带数学宏和论文分节文件
- 05添加 Agent 指南和源码管理规则
适用场景
- 01启动支持会议的论文项目
- 02创建通用 arXiv 或白皮书项目
- 03将投稿从匿名模式切换为终稿模式
- 04为 Overleaf/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.yamlscripts/init.shtemplates/AGENTS.mdCLAUDE.mdgitignoremacros.texmain.textemplates/venues/acl/main.textemplates/venues/acm/main.textemplates/venues/cvpr/main.textemplates/venues/eccv/main.textemplates/venues/emnlp/main.textemplates/venues/iccv/main.textemplates/venues/iclr/main.textemplates/venues/icml/main.textemplates/venues/naacl/main.textemplates/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 的工作方式
每个会议模板都使用 \input{venue_preamble},而非硬编码的
\usepackage{neurips_<year>}。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
| 位置/标志 | 含义 | 必填 |
|---|---|---|
| 第一个词 | 项目名称 | 是 |
| 第二个词 | 目标目录(默认为当前目录) | 否 |
--venue <name> | 会议名称 | 否 |
--git | 初始化 git 仓库 | 否 |
--offline | 跳过样式文件下载(创建占位的 venue_preamble.tex) | 否 |
支持的会议(按截止月份):
| 会议 | 月份 | 样式 | 来源 |
|---|---|---|---|
icml | 1 月 | 双栏 | icml.cc |
acl | 2 月 | 单栏 | github.com/acl-org/acl-style-files |
iccv | 3 月(两年一届,奇数年) | 双栏 | CVF / iccv.thecvf.com |
eccv | 3 月(两年一届,偶数年) | 单栏(LNCS) | github.com/paolo-favaro/paper-template |
neurips | 5 月 | 单栏 | neurips.cc |
emnlp | 5 月 | 单栏 | github.com/acl-org/acl-style-files |
iclr | 9 月 | 单栏 | github.com/ICLR/Master-Template |
cvpr | 11 月 | 双栏 | github.com/cvpr-org/author-kit |
naacl | 12 月 | 单栏 | github.com/acl-org/acl-style-files |
acm | 不固定 | 单栏 | 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 中编译,还是编译工作流未知。不要仅根据当前用户的操作系统或已安装的工具推断项目的编译后端。
如果有可用的项目/工作树记忆文件(例如 .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. 记录 Agent 指南策略
生成的论文仓库应同时包含:
AGENTS.md:通用/Codex 入口文件,规定论文本地的写作、编译、插图、表格和源文件卫生规则CLAUDE.md:Claude Code 入口文件,包含相同的实际策略.gitignore:论文专用的源文件可见性默认规则,除非有意强制添加,否则应将.agent/、AGENTS.md、CLAUDE.md、原始 CSV、内部结果文档、溯源记录、笔记本和绘图脚本排除在可见的论文源文件之外
确保这两个 Agent 指南文件在语义上保持一致,包括相同的 tex-fmt 检查/格式化策略。默认将其视为本地/Agent 私有指南;如果论文分支已关联 Overleaf,或以其他方式对合作者可见,除非用户明确选择公开 Agent 指南,否则不要推送这些文件。
6. 在项目根目录中记录论文版本策略
如果此论文仓库属于 project-init 布局,请注明,针对特定投稿目标的论文版本通常应作为工作树放在同级的 paper-worktrees/ 中隔离,而不是复制到 paper/ 内的文件夹中。
以下情况应使用论文工作树:
- 将同一项目改投使用另一会议模板的会议
- 准备 arXiv/预印本发布,其中 LaTeX 源文件可能公开
- 论文接收后定稿相机就绪版本
- 进行仅涉及论文的 rebuttal 修改,并明确退出条件
对于 arXiv 或任何公开源文件的发布,请勿将内部插图/表格描述、实验溯源说明、审稿意见、TODO、作者注释宏、私有路径和隐藏注释放入发布的 .tex 源文件。请将这些描述/溯源材料存放在 .agent/、根目录 memory/ 或私有项目文档中。
如果主论文分支已关联 Overleaf/GitHub,请将其视为 author-visible:允许包含论文源文件和面向论文的资源,但 .agent/、AGENTS.md、CLAUDE.md、原始 CSV、内部结果文档、绘图脚本、笔记本、审稿策略和私有路径应保留在根目录/私有记忆中,或存放在 agent-private 论文工作树中。
对于匿名会议投稿,请遵守会议的匿名和格式要求。若会议要求上传源文件,不要假设源文件中的注释是安全的。
7. 将脚本的输出展示给用户
脚本会输出文件树和针对不同会议的设置说明。请确保用户能看到这些内容。
会议信息
所有来源均已在 sources.yaml 中验证。init.sh 会自动下载样式文件。
编辑 venue_preamble.tex 可切换投稿模式。
ICML — 1 月截止
- 版式:双栏
- 文档类:
article+\usepackage{icml{YEAR}}(因年份而异) - 参考文献样式:
icml{YEAR}.bst - 必需:
sections/impact.tex(广泛影响,不限页数) - 注意:使用 ICML 专用作者宏(
\icmltitle、\icmlauthor等)
ACL / EMNLP / NAACL — *ACL 系列
- 版式:单栏
- 文档类:
\documentclass[11pt]{article}+\usepackage[review]{acl}(名称固定) - 参考文献样式:
acl_natbib.bst - 引用:文内使用
\citet{};括号内使用\cite{}/\citep{} - 必需:
sections/limitations.tex(不限页数) - 适用时必需:
sections/ethics.tex
ICCV — 3 月截止(每两年举办一次,奇数年:2025、2027、……)
- 版式:双栏(与 CVPR 使用相同的 CVF 格式)
- 文档类:
\documentclass[times,10pt,twocolumn,letterpaper]{article}+\usepackage[review]{iccv} - 参考文献样式:
ieeenat_fullname.bst - 注意:全宽浮动体请使用
figure*/table*
ECCV — 3 月截止(每两年举办一次,偶数年:2024、2026、……)
- 版式:单栏(Springer LNCS)
- 文档类:
\documentclass[runningheads]{llncs}— 不是 article - 样式:
eccv.sty+eccvabbrv.sty - 参考文献样式:
splncs04.bst - 页数限制:14 页,包含图片;参考文献不受页数限制
- 作者格式:LNCS 的
\author{}\inst{}\institute{}宏
NeurIPS — 5 月截止
- 版式:单栏
- 文档类:
article+\usepackage{neurips_{YEAR}}(因年份而异) - 参考文献样式:
unsrtnat(数字编号,按出现顺序排序) - 致谢:使用
{ack}环境(匿名模式下会自动隐藏) - 必需:
sections/impact.tex(广泛影响,不限页数) - 必需:
sections/checklist.tex(作者清单,不限页数)
ICLR — 9 月截止
- 版式:单栏
- 文档类:
article+\usepackage[submitted]{iclr{YEAR}_conference}(因年份而异) - 参考文献样式:
iclr{YEAR}_conference.bst - 附加内容:
sections/impact.tex(可选的伦理声明)
CVPR — 11 月截止
- 版式:双栏
- 文档类:
\documentclass[times,10pt,twocolumn,letterpaper]{article}+\usepackage[review]{cvpr}(名称固定) - 参考文献样式:
ieeenat_fullname.bst - 注意:全宽浮动体请使用
figure*/table*
ACM — 截止时间不定
- 版式:单栏(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):
theoremlemmadefinitionremarkassumption - 作者评论宏
\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 会被创建为占位文件。请按以下步骤修复:
- 访问会场的作者指南页面(URL 位于
sources.yaml中)。 - 手动下载样式 zip 文件,并将
.sty/.bst文件解压到项目根目录。 - 编辑
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 库都会最后加载(在会场宏包之后),因此我们的定义优先级更高。已知冲突:
| 会场 | 潜在冲突 | 解决方法 |
|---|---|---|
| ACM | acmart 会重新定义 \P | 我们的 \P = \mathbb{P} 会覆盖它——这是有意为之 |
| ACM | acmart 有自己的 \cite | macros.tex 中的 \let\cite\citep 可能会造成干扰——如有需要,请将其注释掉 |
| CVPR | 双栏布局 | tcolorbox 定理环境可能会跨栏——如有需要,请改用纯 amsthm |
| ICML | 使用自己的 hyperref 设置 | 在 icml<year> 之后加载 macros.tex,以避免重复加载错误 |
| NeurIPS | algorithmic 与 algpseudocode 的区别 | 始终使用 algpseudocode(小写的 \State、\Require 等)。较旧的 algorithmic 宏包使用全大写命令,与现代算法代码不兼容。 |
| NeurIPS | cleveref 选项冲突 | cleveref 必须在 main.tex 中、hyperref 之后加载一次。macros.tex 模板也包含 \usepackage[capitalize,noabbrev]{cleveref}——同时编译这两个文件时会导致选项冲突(capitalise 与 capitalize)。修复方法:在 NeurIPS 项目中,从 macros.tex 删除或注释掉 cleveref 这一行。NeurIPS 会场模板已对此作了正确处理。 |
| ALL | macros.tex 中的 \def\(、\def\)、\def\[、\def\] | 已永久禁用。这四行重新定义了 LaTeX 内置的数学模式定界符(\( \) = 行内数学;\[ \] = 行间数学),会破坏所有数学环境($...$、\begin{equation}、algorithmic 状态等),并引发连续的 “Missing $” 和 “Extra )” 错误。切勿重新启用。请改为显式使用 \left( ... \right)。 |
| ALL | macros.tex 中的 \usepackage{algorithm} + \usepackage{algorithmic} | 已永久禁用。将 algorithm/algorithmic 与 algpseudocode(NeurIPS、ICML、ICLR 所要求)同时加载,会导致 “Command \algorithmicindent already defined” 等错误。algorithm 浮动体封装应在 main.tex 中加载一次,并且只能搭配 algpseudocode(现代,推荐)或 algorithmic(旧版)其中之一。 |