mcpField
A
arxiv-preflight

arxiv-preflight

github.com/mathews-tom文档处理33743 次安装2 天前更新
代码仓库

关于 arxiv-preflight

arxiv-preflight 是供研究人员和维护者使用的投稿准备技能,用于检查 TeX/LaTeX 项目或 PDF 是否符合 arXiv 技术要求。它根据处理器执行检查,并生成包含通过、失败结果和具体修复建议的报告;不评估行文或科学内容。

主要功能

  1. 01检查投稿文件组织
  2. 02验证 TeX 与处理器兼容性
  3. 03检查插图和参考文献
  4. 04审查元数据与编译后的 PDF
  5. 05验证附属文件和指令
  6. 06生成含修复建议的通过/失败报告

适用场景

  1. 01投稿前检查论文文件包
  2. 02查找缺失或不应提交的源文件
  3. 03解决 TeX 处理器和插图问题
  4. 04检查编译后的 PDF 是否符合技术要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mathews-tom/armory --skill arxiv-preflight

安装后在 Claude Code 中输入/arxiv-preflight确认已加载。

附带文件evals/cases.yamlreferences/guidelines.md

详细介绍

arXiv 提交前检查

流程阶段: 第 3a 阶段(提交准备)。在第 2 阶段修复并重新编译 PDF 后运行。是 arxiv-figures 和 arxiv-package 的关卡。 完整执行顺序请参阅 /manuscript-pipeline。

目的

系统地检查 TeX/LaTeX 项目(或 PDF 投稿)是否符合所有 arXiv 提交要求,并生成结构化的通过/失败报告,为发现的每项违规提供具体修复方案。

配套技能:

  • manuscript-review — 审核文字质量、结构和论断
  • manuscript-provenance — 审核计算可复现性
  • arxiv-figures — 优化适用于 arXiv 的插图
  • arxiv-package — 打包投稿 tarball

此技能专注于 arXiv 技术合规性,不检查文字质量或科学内容。

工作流程

1. 收集文件

确定投稿目录。定位以下内容:

  • 主 .tex 文件
  • 所有被包含的文件(插图、.bbl、.bst、样式文件、子目录)
  • 任何 00README.XXX 文件
  • 任何 anc/ 目录
  • 已编译的 PDF(如果有)
Read references/guidelines.md
2. 验证环节

执行所有环节。对于每项检查:

  • PASS — 符合要求
  • FAIL — 发现违规(记录确切文件、行号和具体修复方案)
  • WARN — 提示(不会阻止提交,但可能引发问题)
  • N/A — 不适用

环节 1 — 文件组织

  1. 所有 .tex 文件中均无绝对文件路径(\input、\includegraphics、\include、\bibliography)
  2. 文件名中不含空格或特殊字符(&、\、:)
  3. 不含应排除的辅助文件:.aux、.log、.toc、.lot、.lof、.dvi、.ps、.pdf(插图 PDF 除外)
  4. 所需文件齐全:使用 BibTeX/BibLaTeX 时需有 .bbl,使用 makeindex 时需有 .ind,使用术语表/术语索引时需有 .gls/.nls
  5. 不含隐藏文件(以 . 开头),与 .tex 相关的配置文件除外
  6. 不包含期刊模板或审稿人来信
  7. 子目录结构:不要使用 \include{} 调用子目录中的文件(改用 \input{})
  8. 如果有多个含 \documentclass 的 .tex 文件:确认 00README.XXX 声明了 toplevelfile

环节 2 — TeX/LaTeX 合规性

  1. 处理器兼容性:插图格式须与处理器匹配
    • DVI 模式:仅限 .ps/.eps 插图
    • PDFLaTeX:仅限 .pdf/.png/.jpg 插图
    • 未使用条件编译时,不得混用格式
  2. 不使用 psfig 宏包(改用 graphicx)
  3. 日期字段中不使用 \today 宏
  4. 不嵌入 JavaScript
  5. 测试 \pdfoutput 时使用 ifpdf 宏包,而非 \ifx\pdfoutput\undefined
  6. 不使用依赖 shell-escape 且无替代方案的宏包(minted → frozencache=true)
  7. 不使用 xr 宏包引用外部文档
  8. 不使用双倍行距的“referee”模式排版
  9. 标题中的 \cite 调用使用 \protect\cite
  10. 不使用 \include 加载子目录中的文件
  11. BibLaTeX .bbl 格式版本与目标 TeX Live 兼容(TL2025 为 3.3)
  12. 投稿中包含所有自定义/非标准样式文件
  13. 不使用 TeX Live 发行版之外的宏包(对照常见的非 TL 宏包检查)

环节 3 — 插图验证

  1. 所有引用的插图均存在于指定路径
  2. 插图格式符合处理器要求
  3. 插图未引用绝对路径
  4. 不包含嵌入式动画、JavaScript 或交互元素
  5. PNG 文件:检查是否存在超大图像(超过 34 百万像素时提示)
  6. 文件大小合理(单张插图超过 5MB 时标记,总插图超过 25MB 时标记)
  7. \includegraphics 调用中提供替代文本(建议项,符合无障碍最佳实践)
  8. \includegraphics 使用 graphicx 宏包,而非已弃用的替代方案

环节 4 — 参考文献验证

  1. .bbl 文件名与对应的 .tex 文件名一致

  2. 如果包含 .bib 文件:也要包含 .bbl 文件(arXiv 可以处理 .bib,但提供 .bbl 更稳妥)

  3. 参考文献中的 arXiv 标识符格式正确(YYMM.NNNNN)

  4. e-print 标识符中没有多余的格式内容

  5. 检查 BibLaTeX .bbl 格式版本(查看 .bbl 中的 \RequirePackage 版本) 第 5 步——元数据合规性(检查 .tex 前言部分)

  6. 标题:不使用全大写,不包含原始 Unicode 字符,展开晦涩的宏

  7. 作者:姓名格式规范,不带尊称,不使用 et al. 截断

  8. 摘要:开头不出现 “Abstract” 字样,不超过 1920 个字符,各行开头不留空白

  9. 摘要:展开不透明的 TeX 宏,不使用格式命令(\em、\it)

  10. 如果存在评论元数据:包含页数和图数(仅供参考)

第 6 步——PDF 验证(如果有已编译的 PDF)

  1. 所有字体均已嵌入(使用 pdffonts 或同等工具检查)
  2. 不含 Type 3(位图)字体
  3. 可机器读取(不是扫描件或位图)
  4. 不含嵌入式 JavaScript
  5. 没有阻止文本提取的安全限制
  6. 文件大小合理

第 7 步——00README.XXX 验证(如果存在)

  1. 指令语法有效(每行格式为 filename directive 或独立指令)
  2. 引用的文件均存在
  3. 与 DVI 相关的指令使用正确的文件名(不带 .tex 扩展名)
  4. 不含冲突指令

第 8 步——辅助文件(如果存在 anc/ 目录)

  1. anc/ 目录中不含 .tex 文件
  2. 不含嵌入式 JavaScript 的 PDF
  3. .tex 源文件中没有对 anc/ 目录的内部引用
  4. 总大小合理

第 9 步——常见错误扫描

  1. PS/EPS 文件顶部(而非末尾)包含 %%BoundingBox
  2. newtxmath 和 amssymb 之间没有 \Bbbk 冲突
  3. 没有含糊的双重下标或上标(a_x_y → a_{x}_y)
  4. 没有拼接在一起的源文件
  5. 没有 Scientific Workplace .rap 文件
  6. 没有经过修改的标准样式文件(epsf.sty、epsfig.sty)
  7. 对于带有复杂节名称的 hyperref:使用 bookmarks=false 或正确处理 PDF 字符串

3. 生成报告

生成一份结构化报告:

# arXiv Preflight Report

**Project:** [directory name]
**Date:** [date]
**Processor:** [detected processor]
**Verdict:** [READY / NEEDS FIXES / BLOCKED]

## Summary

| Category | Pass | Fail | Warn | N/A |
|----------|------|------|------|-----|
| File Organization | | | | |
| TeX Compliance | | | | |
| Figures | | | | |
| Bibliography | | | | |
| Metadata | | | | |
| PDF | | | | |
| 00README | | | | |
| Ancillary Files | | | | |
| Common Errors | | | | |

## Blocking Issues (FAIL)

[Each with file, line number, specific violation, exact fix]

## Warnings (WARN)

[Advisory items that may cause processing issues]

## All Checks

[Full pass/fail/warn/N/A status for every checkpoint]
4. 输出

将报告保存为项目目录中的 arxiv-preflight-report.md。

给出结论和阻塞问题数量。如果结果为 READY,请确认可以继续提交。 如果结果为 NEEDS FIXES,请按优先级列出具体修复项。

核心原则

  • 二元合规。 arXiv 要求不是建议——FAIL 表示提交会被拒绝或处理流程会出错。WARN 表示可能会造成问题。
  • 精确修复。 每项 FAIL 都必须包含所需的具体命令、行或文件修改。
  • 不误报。 只标记违反有文档记录的 arXiv 要求之处。不要将风格偏好或最佳实践判为错误。
  • 考虑处理器差异。 所有检查都应考虑检测到的 TeX 处理器。PDFLaTeX 规则不适用于 DVI 模式提交,反之亦然。

评论

支持 Markdown