arxiv-to-beamer

Given an arxiv identifier or arxiv abs/pdf URL, download the LaTeX source (or, if PDF-only, fall back to MinerU's PDF -> Markdown API), ask an OpenRouter model to generate a Beamer presentation introducing the work, and package the result as an Overleaf-uploadable .zip. Use when the user provides an arxiv link/id and asks for a beamer / slides / 演示文稿 / 介绍 derived from the paper.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "arxiv-to-beamer" with this command: npx skills add dirtycomputer/arxiv-to-beamer

arxiv-to-beamer

Turn an arxiv paper into an Overleaf-ready Beamer project, using an OpenRouter model to draft the slides from the paper's own LaTeX source — or, when arxiv has no TeX source, from a Markdown rendering produced by MinerU.

Prerequisites

  • Env var OPENROUTER_API_KEY must be exported in the shell.
  • Env var MINERU_API_TOKEN should be exported when the paper might be PDF-only (used for the MinerU fallback). Get one from https://mineru.net → console → API.
  • Python 3.9+ on PATH (only stdlib is used — no pip install needed).

If OPENROUTER_API_KEY is not set, stop and ask the user to export it before running anything. If a paper turns out to be PDF-only and MINERU_API_TOKEN is missing, ask the user to export that too (or pass --no-mineru-fallback to skip the fallback entirely).

Usage

Invoke the bundled script with the arxiv id (e.g. 2603.19835) or any arxiv URL (abs/, pdf/, e-print/). Always prefer the ${CLAUDE_PROJECT_DIR} variable so the path resolves regardless of cwd:

python "${CLAUDE_PROJECT_DIR:-.}/.claude/skills/arxiv-to-beamer/scripts/arxiv_to_beamer.py" <arxiv_id_or_url>

Optional flags:

  • --output <path> — output zip path (default <id>-beamer.zip in cwd).
  • --model <name> — OpenRouter model id (default anthropic/claude-sonnet-4.5).
  • --language <lang> — slide language hint passed to the model (default 中文).
  • --keep-source — also copy the extracted arxiv source (or MinerU markdown output) next to the zip.
  • --max-chars <n> — cap source bytes sent to the model (default 200000).
  • --mineru-timeout <sec> — how long to wait for MinerU PDF parsing (default 900s).
  • --no-mineru-fallback — skip the MinerU fallback when arxiv is PDF-only (script then exits with code 2 instead).

What the script does

  1. Parses the arxiv id from the input (supports 2603.19835, 2603.19835v2, the legacy hep-th/9901001 form, and full URLs).
  2. Downloads https://arxiv.org/e-print/<id>. Detects PDF-only submissions via magic bytes.
  3. If TeX source is present: extracts the archive (gzipped tar, plain tar, or a single gzipped .tex) into a temp dir and gathers every .tex / .bib file.
  4. If PDF-only: falls back to the MinerU API:
    • POST https://mineru.net/api/v4/extract/task with {"url": "https://arxiv.org/pdf/<id>", ...}.
    • Polls GET .../extract/task/<task_id> until state == "done".
    • Downloads the result zip (full_zip_url), extracts it, and concatenates every .md file as the source text.
    • Aborts (exit 2) if MinerU is unreachable, the task fails or times out, or MINERU_API_TOKEN is not set.
  5. Builds a prompt containing the collected source (truncated to --max-chars) and asks the model: "帮我做一个 beamer 来介绍一下这个 研究工作", with formatting instructions so the response is parseable.
  6. Parses files from the response. Recognised forms, in order:
    • ===== FILE: <relpath> ===== blocks (preferred, multi-file).
    • Fenced code blocks with a filename hint (```latex main.tex).
    • A single fenced LaTeX block → main.tex.
    • Anything else → dumped verbatim into main.tex.
  7. Writes everything into <id>-beamer.zip. Upload that zip via Overleaf → New Project → Upload Project.

When invoked

  • Run the script in the foreground; do not background it.
  • Surface the script's stdout/stderr to the user.
  • Report the absolute path of the produced .zip.
  • If the script exits with code 2:
    • Check the stderr message: it will say either "TeX source missing and MINERU_API_TOKEN not set" (ask the user to export the token, or rerun with --no-mineru-fallback), "MinerU PDF parsing failed" (network / quota issue — surface the detail), or "no downloadable TeX source" (paper is withdrawn). Do not blindly retry.
  • If OpenRouter returns an HTTP error, surface the message; do not retry silently more than once.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Dota2-Stats-Skill

Query Dota 2 player records, match data, hero statistics, pro scene, teams, leagues and live games via OpenDota API. Supports 27 commands covering all API en...

Registry SourceRecently Updated
General

WordPress API Auto Post 文章自动发布API

Publish SEO-optimized articles to WordPress via REST API with RankMath meta fields

Registry SourceRecently Updated
General

Resend Send Native Node

Send email via Resend.com's HTTPS API - native Node.js, zero dependencies. Use when the user explicitly asks to email, send a message, mail a report, or deli...

Registry SourceRecently Updated
General

BigA

A股智能分析与选股工具。维护动态股票池(最多30支),按高科技×中小市值×好业绩原则筛选,推送买卖信号。含独立技术面择时分(-10~+10)用于判断买入卖出时机。

Registry SourceRecently Updated