下载 arXiv 论文 TeX 源码
给定一个 arXiv 链接或纯 arXiv ID,从 https://arxiv.org/e-print/<id> 下载论文的 TeX 源码并将其解压,以供下游管线使用。每当用户提供 arXiv 链接且需要将 TeX 源码(而非仅 PDF)馈入管线时,这是必需的第一个步骤——TeX 源码能精确保留表格、公式和图表,并跳过 MinerU。
何时使用
- 用户提供 arXiv URL(
arxiv.org/abs/…、arxiv.org/pdf/…、arxiv.org/e-print/…、export.arxiv.org/…)或纯 ID(2509.07996、2509.07996v4)作为任何论文管线的输入。 - 某个消费者技能需要将论文源码放在磁盘上(
paper_src/),但它只有 arXiv 引用。
调用方式
uv run --no-project python \
"<SKILLS_DIR>/paper-download-arxiv-paper-source/scripts/download_source.py" \
"<arxiv-url|arxiv-id>" [--output DIR] [--force]
--output默认指向会话的当前工作目录(cwd)。--force强制重新下载,即使归档已存在。
输出约定
在输出目录下:
arXiv-<id>.tar.gz— 下载的 e-print 归档(gzip/tar)。paper_src/— 解压后的 TeX 源码(如果归档包装在一个单一顶层目录中,则展平;不安全的成员会被拒绝)。- 仅 PDF 提交(arXiv 上没有 TeX 源码):改为生成
arXiv-<id>.pdf。 - 单文件 TeX 提交:改为生成
arXiv-<id>.tex。
成功时,标准输出以 TEX_SOURCES: <逗号分隔的相对路径> 结尾(或 PDF_ONLY: <PDF 绝对路径>)。请消费这些行——绝不要猜测文件名。
幂等性
在同一输出目录中使用相同 ID 重新运行会跳过下载(标准输出以 SKIP 开头),除非指定了 --force;解压验证仍会执行。
失败处理
非零退出码 + 标准错误上的 ERROR: 消息(解析失败、网络故障、空响应体、意外载荷、不安全归档成员、归档中无 .tex 文件)。管线必须停止并报告——绝不要静默回退到 PDF。
回退说明
如果脚本报告 PDF_ONLY: <路径>,则论文在 arXiv 上没有 TeX 源码。消费者随后应使用该 PDF 并通过 MinerU 路径(例如 paper-to-beamer 阶段 2 的决策门)进行处理,而非读取 TeX。
被以下技能使用
paper-to-beamer阶段 1(arXiv 链接/ID 输入)paper-to-bilibili幻灯片模式(带有arxiv_id的条目,无本地源码)paper-venue-discovery步骤 1(仅给定时获取源码)
相关技能
- skill://paper-to-beamer
- skill://paper-to-bilibili
- skill://paper-venue-discovery
- skill://paper-to-beamer-workflow
- skill://paper-bilibili-multi-part-series-upload
- skill://paper-bilibili-series-upload