📦 arxiv-to-beamer — arxiv 轉換為 beamer
v0.1.0给定一个 arxiv 标识符或 arxiv abs/pdf URL,下载 LaTeX 源代码(或,如果仅有 PDF,则回退到 MinerU 的 PDF -> Markdown API),并询问一个 OpenRouter 模块...
运行时依赖
安装命令
点击复制技能文档
arxiv-to-beamer 将arxiv论文转换为Overleaf-ready Beamer项目,使用OpenRouter模型从论文的LaTeX源码或MinerU生成的Markdown渲染中草拟幻灯片。
前置条件 环境变量OPENROUTER_API_KEY必须在shell中导出。 环境变量MINERU_API_TOKEN应该在论文可能为PDF-only时导出(用于MinerU回退)。 可以从https://mineru.net → console → API获取。 Python 3.9+必须在PATH中(仅使用stdlib,无需pip install)。 如果OPENROUTER_API_KEY未设置,停止并要求用户在运行任何内容之前导出它。 如果一篇论文被证明是PDF-only且MINERU_API_TOKEN缺失,要求用户导出它(或传递--no-mineru-fallback以完全跳过回退)。
使用方法 使用arxiv id(例如2603.19835)或任何arxiv URL(abs/、pdf/、e-print/)调用捆绑脚本。 始终更喜欢${CLAUDE_PROJECT_DIR}变量,以便路径无论cwd如何都能解析: python "${CLAUDE_PROJECT_DIR:-.}/.claude/skills/arxiv-to-beamer/scripts/arxiv_to_beamer.py"
可选标志: --output — 输出zip路径(默认为-beamer.zip在cwd中)。 --model — OpenRouter模型id(默认为anthropic/claude-sonnet-4.5)。 --language — 传递给模型的幻灯片语言提示(默认为中文)。 --keep-source — 也复制提取的arxiv源码(或MinerU markdown输出)到zip旁边。 --max-chars —限制发送到模型的源字节(默认为200000)。 --mineru-timeout — 等待MinerU PDF解析的时间(默认为900s)。 --no-mineru-fallback — 跳过MinerU回退,当arxiv为PDF-only时(脚本然后用代码2退出)。
脚本的作用 解析输入的arxiv id(支持2603.19835、2603.19835v2、旧的hep-th/9901001形式和完整的URL)。 下载https://arxiv.org/e-print/。 通过魔术字节检测PDF-only提交。 如果TeX源码存在: 提取存档(gzipped tar、普通tar或单个gzipped .tex)到临时目录,并收集每个.tex/.bib文件。 如果PDF-only: 回退到MinerU API: POST https://mineru.net/api/v4/extract/task,带有{"url": "https://arxiv.org/pdf/",...}。 轮询GET .../extract/task/,直到state == "done"。 下载结果zip(full_zip_url),提取它,并将每个.md文件连接为源文本。 如果MinerU不可达、任务失败或超时、或MINERU_API_TOKEN未设置,则中止(退出代码2)。 构建一个包含收集的源码(截断为--max-chars)的提示,并要求模型: "帮我做一个beamer来介绍一下这个研究工作",带有格式化指令,以便响应可以解析。 解析响应中的文件。 识别的形式,按顺序: ===== FILE: ===== 块(首选,多文件)。 带有文件名提示的围栏代码块(```latex main.tex)。 单个围栏LaTeX块 → main.tex。 其他内容 → 直接转储到main.tex中。 将所有内容写入-beamer.zip。 通过Overleaf → 新建项目 → 上传项目上传该zip。
运行时 在前台运行脚本;不要将其置于后台。 将脚本的stdout/stderr暴露给用户。 报告生成的.zip的绝对路径。 如果脚本以代码2退出: 检查stderr消息: 它将说“TeX源码缺失且MINERU_API_TOKEN未设置”(要求用户导出令牌,或使用--no-mineru-fallback重新运行), 或“MinerU PDF解析失败”(网络/配额问题 — 暴露详细信息), 或“没有可下载的TeX源码”(论文已撤回)。 不要盲目重试。 如果OpenRouter返回HTTP错误,暴露消息;不要默默地重试超过一次。