Install
openclaw skills install arxiv-paper-resolver接收 arXiv 论文链接,自动提取章节结构、下载 PDF、解析 HTML 全文,生成按论文自身章节结构编排的中文文档
openclaw skills install arxiv-paper-resolverhttps://arxiv.org/abs/2604.25836)用户提供 arXiv 链接
↓
Step 1: 运行提取脚本(自动完成)
├── 获取 abs 页面 → 提取标题 + Access Paper 三链接
├── 创建论文标题命名的子目录
├── 下载 PDF
├── 获取 HTML 实验版全文
├── 解析 h2/h3 章节结构
└── 保存章节文件 + 元数据 JSON
↓
Step 2: 读取章节文件(人工/LLM 完成)
├── 读取章节结构总览
└── 逐章读取原始内容
↓
Step 3: 翻译并组装中文文档(LLM 完成)
├── 按章节依次翻译为中文
├── 保持数学符号和 LaTeX 公式不变
└── 生成完整 MD 文档
↓
完成:PDF + 中文文档 已归档到目录
pip install -r scripts/requirements.txt
调用 scripts/arxiv_section_extractor.py,传入 arXiv ID(支持 URL 或裸 ID):
python3 scripts/arxiv_section_extractor.py 2604.25836
# 或指定输出目录
python3 scripts/arxiv_section_extractor.py 2604.25836 -o ~/papers
# 或通过环境变量
export ARXIV_PAPERS_DIR=~/papers
python3 scripts/arxiv_section_extractor.py 2604.25836
脚本自动完成:
{output_dir}/{论文标题slug}/ 目录先读章节结构总览了解论文组织:
cat {output_dir}/{slug}/{arxiv_id}_section_structure.txt
ls {output_dir}/{slug}/{arxiv_id}_raw_sections/
按编号顺序读取 01_*.txt、02_*.txt……每个文件包含该章的完整原文。
对每个章节:
⚠️ 格式要求(严格执行):
A. 行内公式必须使用 $...$(Typora 兼容)
$S_{\text{TC}} = \frac{1}{N_{\text{valid}}}$\(S_{\text{TC}} = \frac{1}{N_{\text{valid}}}\)(不渲染)$`S_{\text{TC}} = \frac{1}{N_{\text{valid}}}`$(带反引号乱码)$,不能有反引号 ` 或 \(/\)B. 禁止使用 HTML 锚点标签
<a id="section-1"></a>(在 Typora 中显示为多余字段)[1. 章节名](#section-1))也应一并省略,Typora 不支持此类锚点跳转C. 文档结构(最终 MD 格式):
# 论文标题(原文+中文译名)
## 基本信息
- **论文标题**:...
- **arXiv ID**:...
- **链接**:...
- **PDF**:`{output_dir}/{slug}/{arxiv_id}.pdf`
---
## 摘要
(翻译后的中文摘要,无公式则直接写文字)
---
## 目录
- [1. 章节名](#)
- [2. 章节名](#)
- ...
---
## 1. 章节名(翻译后的中文名)
(翻译后的完整内容,含 h3 子节。公式必须用 `$...$` 包裹。)
---
## 2. 章节名
...
保存为 {output_dir}/{slug}/{arxiv_id}_中文文档.md
当用户要求"做成 PPT"、"生成演示文稿"、"做 slides"时,在完成中文文档后,使用 HTML 幻灯片技能生成演示文稿。
scripts/arxiv_section_extractor.py唯一的核心脚本,封装了所有自动化操作。
用法:
python3 arxiv_section_extractor.py <arxiv_id>
# 或
python3 arxiv_section_extractor.py https://arxiv.org/abs/2604.25836
# 指定输出目录
python3 arxiv_section_extractor.py 2604.25836 -o ~/papers
依赖: requests, beautifulsoup4
功能:
extract_arxiv_id() — 从 URL 或裸 ID 中提取 arxiv_idget_paper_info_from_abs() — 从 abs 页面获取标题和三个 Access Paper 链接fetch_html_content() — 获取 HTML 实验版全文(自动尝试 v1 和无后缀)extract_sections_from_html() — 解析 h2 章节结构和 h3 子节save_section_files() — 将各章节保存为独立文件,生成章节结构总览sanitize_title() — 将标题转为安全目录名输出目录结构:
{output_dir}/{title-slug}/
├── {arxiv_id}.pdf ← 原始 PDF
├── {arxiv_id}_中文文档.md ← 最终中文文档(由 LLM 生成)
├── {arxiv_id}_metadata.json ← 论文元数据
├── {arxiv_id}_section_structure.txt ← 章节结构总览
└── {arxiv_id}_raw_sections/ ← 各章节原文
├── 00_abstract.txt
├── 01_Introduction.txt
├── 02_Section_Name.txt
└── ...
{output_dir}/strongly-quasi-pseudometric-aggregation-functions/
├── 2604.25836.pdf ← PDF
├── 2604.25836_中文文档.md ← 中文文档
├── 2604.25836_metadata.json ← 元数据
├── 2604.25836_section_structure.txt ← 章节结构
└── 2604.25836_raw_sections/ ← 原文章节
├── 00_abstract.txt
├── 01_Introduction.txt
├── 02_Quasi-pseudometric_aggregation_functions.txt
├── 03_Strongly...on_products.txt
└── 04_Strongly...on_sets.txt
$...$ 作为定界符。禁止使用 \(...\)(Typora 不渲染),也禁止使用 $`...`$(带反引号导致乱码)。生成后需用 grep '$' 文档.md | head 验证定界符正确。<a id="..."> 锚点、<br> 换行等。目录无需带锚点链接,直接写 - [章节名](#) 或纯文本列表即可。\mathcal, \text, \sum)保留原样不翻译。技术术语(如 LLM, MLLM, DV, Agent 等)首字母缩写保留原文,可在其后括号加中文注释。不包含参考文献/引用内容(如 [1], [2] 等引用标记应删除)。{id}v1 和 {id} 两种地址格式。~/papers/,可通过 -o 参数或 ARXIV_PAPERS_DIR 环境变量自定义。