关于 arxiv-package
arxiv-package 是将 TeX/LaTeX 项目整理为 arXiv 投稿压缩包的技能,适合准备提交论文的作者。它追踪必需文件、排除构建产物,并检查归档结构及内容。
主要功能
- 01扫描并分类项目文件
- 02追踪 TeX 引用的文件
- 03排除构建产物和无关文件
- 04按需生成 00README.XXX
- 05创建并验证投稿归档
适用场景
- 01整理论文文件以供 arXiv 上传
- 02排除日志、备份及编辑器文件
- 03检查归档中的引用文件是否齐全
- 04在临时目录中验证归档编译
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mathews-tom/ armory --skill arxiv-package安装后在 Claude Code 中输入/arxiv-package确认已加载。
附带文件evals/cases.yaml
详细介绍
arXiv 投稿打包工具
用途
将 TeX/LaTeX 项目整理为结构清晰、格式正确的 .tar.gz 或
.zip 归档文件,以便上传至 arXiv。处理文件筛选、排除构建产物、
目录结构、生成 00README 以及验证最终打包文件。
配套技能:
arxiv-preflight— 打包前进行验证arxiv-figures— 打包前优化图片
工作流
1. 清点文件
扫描项目目录。对每个文件进行分类:
纳入 — 必需文件
- 主
.tex文件 - 所有
\input/\include目标(递归追踪) - 所有
\includegraphics目标 .bbl文件(预处理后的参考文献).ind文件(预处理后的索引).gls/.nls文件(术语表/符号表)- TeX Live 中不存在的自定义
.sty、.cls、.bst文件 00README.XXX(如存在)anc/目录中的内容(附属文件)
排除 — 构建产物
.aux、.log、.toc、.lot、.lof、.out、.nav、.snm、.vrb.dvi、.ps、.pdf(图片 PDF 和附属 PDF 除外).synctex、.synctex.gz、.fls、.fdb_latexmk.blg、.ilg、.glg、.nlg(bib/索引/术语表处理生成的日志文件)*.bak、*~、*.swp、*.swo(编辑器备份文件).DS_Store、Thumbs.db、desktop.ini(操作系统产物)
排除 — 不应提交
- 期刊模板/样式指南(编译所需的自定义
.sty除外) - 审稿意见信、投稿附信
- 构建脚本(
Makefile、latexmkrc)— arXiv 不需要 .git/、.svn/、版本控制目录- IDE 配置(
.vscode/、.idea/、.texpadtmp/)
标记 — 需要决定
.bib文件(与.bbl一起纳入或省略 — arXiv 会同时处理两者)- 含有
\documentclass的多个.tex文件(需要使用toplevelfile创建00README.XXX) - 大型数据文件(作为附属文件或排除)
2. 生成 00README.XXX
在需要时创建或更新 00README.XXX 文件:
# Auto-generated by arxiv-package
# Main TeX file (only if ambiguous — multiple \documentclass files)
main.tex toplevelfile
# Files to exclude from processing
cover-letter.pdf ignore
notes.txt ignore
# Optional directives
# nostamp
# nohypertex
仅在以下情况下生成:
- 多个
.tex文件包含\documentclass(声明toplevelfile) - 文件需要明确的
ignore指令 - 用户要求使用
nostamp或其他指令
3. 验证结构
创建归档文件前:
- 所有
\input/\include目标都能在打包文件中找到 - 所有
\includegraphics目标都能在打包文件中找到 - 所有
\bibliography目标都有对应的.bbl文件 - 所有 TeX 源文件中都没有绝对路径
- 文件名中没有空格或特殊字符
anc/目录中没有.tex文件- 没有隐藏文件(arXiv 公布论文时会删除这些文件)
- 未压缩的总大小合理(超过 50MB 时标记 — 可能需要申请例外)
4. 创建归档文件
# From project root, create tar.gz excluding unwanted files
tar czf submission.tar.gz \
--exclude='*.aux' --exclude='*.log' --exclude='*.toc' \
--exclude='*.lot' --exclude='*.lof' --exclude='*.out' \
--exclude='*.nav' --exclude='*.snm' --exclude='*.vrb' \
--exclude='*.dvi' --exclude='*.synctex*' \
--exclude='*.fls' --exclude='*.fdb_latexmk' \
--exclude='*.blg' --exclude='*.ilg' --exclude='*.glg' \
--exclude='*.bak' --exclude='*~' --exclude='*.swp' \
--exclude='.git' --exclude='.svn' \
--exclude='.DS_Store' --exclude='Thumbs.db' \
--exclude='.vscode' --exclude='.idea' \
[list of files/directories to include]
# Or create zip
zip -r submission.zip [files] \
-x '*.aux' -x '*.log' -x '*.toc' ...
优先明确指定要纳入的文件,而不是将整个目录纳入后再排除文件。 这样可以避免意外纳入敏感或不必要的文件。
5. 验证归档文件
创建后:
- 列出归档内容 — 确认没有意外文件
- 解压到临时目录
- 尝试在解压后的目录中编译(如果有 TeX 工具链)
- 报告归档文件大小(压缩后和未压缩)
- 将文件列表与纳入/排除清单进行比对
6. 报告
# arXiv Package Report
**Archive:** submission.tar.gz
**Compressed size:** [size]
**Uncompressed size:** [size]
**File count:** [count]
## Contents
| File | Size | Type |
|------|------|------|
| main.tex | 45 KB | Source |
| references.bbl | 12 KB | Bibliography |
| fig1.pdf | 380 KB | Figure |
| anc/data.csv | 1.2 MB | Ancillary |
## Excluded
| File | Reason |
|------|--------|
| main.aux | Build artifact |
| main.log | Build artifact |
| referee-response.pdf | Not for submission |
## 00README.XXX
[Contents if generated]
## Verification
- [ ] Archive extracts cleanly
- [ ] All source references resolve
- [ ] Compilation succeeds (if tested)
- [ ] No sensitive files included
归档格式说明
- 优先使用
.tar.gz而不是.zip(学术 TeX 工作流中的标准格式) - arXiv 接受
.tar(gzip 压缩)和.zip - 不要嵌套归档文件(不要在
.zip内放入.tar.gz) - 文件应位于根目录或逻辑子目录中 — 除非项目使用子目录进行组织,否则不要添加外层包装目录
核心原则
- 明确纳入,而非一概排除。 根据所需内容构建文件列表,而不是从所有文件中减去不需要的文件。这样可以发现那些不应提交、但未列入排除清单的文件。
- 打包后进行验证。 提交的是归档文件。应测试归档文件,而不是源目录。
- 保留目录结构。 如果项目使用子目录存放图表或章节,请保留该结构。TeX 路径依赖于此。
- 不要包含敏感文件。 打包前检查
.env、凭据、个人笔记和审稿人通信。
评论
支持 Markdown