Communitygithub.com

Peytontalismanic424/paper-share-skills

論文ディレクトリから決定論的な16:10のビデオカバーポスターを生成します。論文のメタデータと図を抽出し、アトミックにposter.tex、poster.pdf、poster.pngを生成します。会議用ポスターではなく、論文ビデオのカバーに使用します。

paper-share-skills とは?

このスキルは、論文ディレクトリを入力として、Gemini/SUSTechスタイルの16:10アスペクト比のビデオカバーポスターを生成します。論文のメタデータ(タイトル、会議名など)と図を自動抽出し、LaTeXコンパイルとPNG変換が両方成功した場合のみ出力を確定するアトミックな動作が特徴です。LuaLaTeXとPopplerのpdftoppmを外部ツールとして利用し、CLIフラグ、環境変数、PATHの順で解決します。特に中国語対応のラボ調査ポスター生成機能が充実しており、研究室名(中国語・英語)、教授名、タイトル行などをJSONで指定可能で、Bilibiliアップロード用に最適化されたスキーム(bilibili)を提供します。このスキルはClaude Code、Cursor、CodexなどのAIエージェントが、論文発表のビデオコンテンツ作成を効率化するために設計されています。

対応~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-video-cover

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ペーパービデオカバー

論文ディレクトリからGemini/SUSTech 16:10カバーを生成します。生成プログラムは、LaTeXコンパイルとPNG変換の両方が成功した場合にのみ出力をインストールします。

パッケージとセットアップ

インストールされるuvプロジェクトは以下の通りです:

<SKILLS_DIR>/paper-video-cover

これはPillow依存関係を管理し、必要な両方のテーマを含みます:

<SKILLS_DIR>/paper-video-cover/templates/beamerthemegemini.sty
<SKILLS_DIR>/paper-video-cover/templates/beamercolorthemesustech.sty

LuaLaTeXとPopplerのpdftoppmは外部ツールです。生成前に両方が解決されている必要があります。各ツールは、明示的なCLIフラグ、LUALATEXまたはPDFTOPPM環境変数、PATHの順に解決されます。優先度の高い無効なオーバーライドは致命的であり、バイパスされません。

実行

uv run --project "<SKILLS_DIR>/paper-video-cover" `
  "<SKILLS_DIR>/paper-video-cover/scripts/generate_poster.py" `
  "<paper_dir>"

デフォルト出力は<paper_dir>/posterです。別のディレクトリを選択するには:

uv run --project "<SKILLS_DIR>/paper-video-cover" `
  "<SKILLS_DIR>/paper-video-cover/scripts/generate_poster.py" `
  "<paper_dir>" --output-dir "<output_dir>"

オプション:

  • --data <json>:オプションのJSONオーバーライド。
  • --scheme <default|lab|bilibili>:SUSTechのカラースキーム(デフォルトはdefault;ラボ調査ではbilibiliを使用してデッキに合わせます)。
  • --title-font <points>:自動タイトルサイズをオーバーライドします。
  • --output-dir <directory>:最終出力ディレクトリ。
  • --lualatex <path-or-command>:明示的なLuaLaTeX実行可能ファイル。
  • --pdftoppm <path-or-command>:明示的なpdftoppm実行可能ファイル。

PNG生成は必須です。成功した出力には、空でないposter.tex、poster.pdf、poster.png、およびコピーされたテーマと変換された図が含まれます。ビルドは兄弟の一時ディレクトリで行われるため、ビルドに失敗しても既存の最終出力は置き換えられません。

ラボ調査ポスター生成器(实验室调研、generate_lab_poster.py)

ラボ調査には、汎用パスの代わりにscripts/generate_lab_poster.pyを使用します。これは、リポジトリのポスターテンプレート(<TEMPLATE_DIR>/main_template_lab_poster.tex、ソースオブトゥルース;templates/にフォールバックコピーあり)をDECKの可視化分析セクション区切り形式で埋めます:全面表示slides-beamer/figures/background.png(必須 — ない場合は致命的;デッキにない場合は、paper-group-to-beamer/scripts/gen_viz_background.py --survey-dir "<LAB_DIR>"でビルド)+ 4つの白い角丸影付きボックス(行):ラボ調査+日付ペア / 機関ブロック(ブランドカラーのアイブロウ + 英語行)/ 教授名 / title_2+title_3(emphルール付き)。メトリック行、宣伝文、ラボ名行はありません。

注意(2026-08-07 デフォルト変更):ポスターはラボディレクトリに必須の成果物です(アップローダーはポスター/poster.pngがないとクローズします)が、BilibiliアップロードカバーのデフォルトはDECKの最初のスライド(video/cover.png)です — ポスターをvideo/cover.pngにコピーしないでください;パイプラインのスライド001レンダリングを維持してください。詳細はlab-survey-to-bilibili-runbookを参照。

uv run --project "<SKILLS_DIR>/paper-video-cover" \
  "<SKILLS_DIR>/paper-video-cover/scripts/generate_lab_poster.py" \
  "<LAB_DIR>" --data "<LAB_DIR>/poster_data.json"

--data JSON:title_1_piは必須(30文字以内)。命名規則:中国語名PI → xxx教授(例 李飞飞教授、刘华平教授);非教授の役割はProf./教授を付けない(例 Sergey Levine 等联合创始人);英語名教授 → Prof. First Last(例 Prof. Yann LeCun)。 title_1_uniはオプション(幅予算40単位、CJKグリフ=2単位、それ以外=1、例 纽约大学=8、Physical Intelligence=21;空の場合は行を削除)、 title_1_uni_colorはオプション(#RRGGBB — 機関のロゴブランドカラー、例 NYU 57068B、Stanford 8C1515、CMU C41230、Berkeley 003262、Tsinghua 660874、SUSTech 2C5F7C、HKUST 003366;ブランドカラーのない機関はデフォルトで黒 000000)、 title_1_uni_enはオプション(40文字以内、例 NEW YORK UNIVERSITY) — タイトルブロックは大学を機関ブランドカラーのアイブロウ(25ptセミボールド、title_1_uni_color、0.25emのCJKトラッキングは生成器が自動挿入、サイドダッシュ80×3pxでブランドカラーの50%)、英語の小行(13pt #8A8F98)、次に教授名(55ptピンク太字、一行)でレンダリングします。title_2/title_3はオプション(それぞれ幅予算30単位、例 从卷积网络到世界模型=18、IEEE Fellow 2026=15;空の部分はその行を削除)。date(オプション、デフォルトは今日)は日付ブロックを埋めます。papers.jsonからのコーパス統計は情報提供のみです — ファイルがない場合は警告付きで劣化し、実行を失敗させることはありません。ラボ名行、宣伝文行、メトリック行、·セパレータはありません。例: title_1_uni="纽约大学"、title_1_uni_en="NEW YORK UNIVERSITY"、 title_1_pi="Prof. Yann LeCun"、title_2="从卷积网络到世界模型"、 title_3="图灵奖得主的40年深度学习谱系"。video_meta.jsonのアップロードタイトルは、{機関略称} {PI氏名}教授:テーマ — フック形式を独立して維持します。ポスターレイアウト(デッキの可視化分析背景上の角丸影付きtikzボックス):0.6971\textwidthコンテナ内の4行、ページ上で絶対中央揃え(固定上部0.107\textheight / 下部0.103\textheightオフセット;スタックはページの約77%):行1 = ラボ調査 + 〈DATE〉ペア(各0.3092\textwidthテキスト幅、32pt、高さ0.1250\textheight);行2 = 機関ブロック — NYUパープルアイブロウ(25ptセミボールド、サイドダッシュ)+ 英語行13pt(0.6706\textwidth、高さ0.1250\textheight);行3 = 教授名ブロック(55ptピンク太字一行、0.6706\textwidth、高さ0.1806\textheight);行4 = title_2/title_3 + ルール37pt(高さ0.2153\textheight)。ギャップ:水平0.0258\textwidth / 垂直0.0417\textheight(2324×1440参照キャンバスで両方向60px)。 --schemeのデフォルトはbilibili(デッキ一致);--template/--theme-dirはリポジトリパスをオーバーライドします(デッキsustech-themeがビルドにコピーされます)。トークンコントラクト(コード行で置き換えられない場合は致命的):〈DATE〉〈TITLE1UNI〉〈TITLE1UNIEN〉〈TITLE1PI〉〈TITLE2〉〈TITLE3〉。xelatexでコンパイル(2パス;デッキテーマはxelatexのみ)し、poster.pngを300 dpi(32×20 cmページ→約3780×2363 px)でレンダリング;出力は<LAB_DIR>/poster/。

落とし穴 — 大きなタイトルテキスト内のスペース:sustechテーマ下でのTikZノード+\fontsize{72}{84}は単語間スペース(\ さえも)を削除します;そのため生成器はtitle_1/2/3内のプレーンスペースを\hspace{0.25em}グルーに変換します(pdftotextで確認:NYU Prof. Yann LeCunはスペースを保持)。

落とし穴 — 行のセンタリングとブロック幅:(1) \hbox to \containerwidthは段落行ではなく、\centeringはそれを中央揃えにしません — 行は\hbox to \textwidth{\hss … \hss}でなければならず、コンテンツを行全体の中央に配置します。(2) \dimexprベースのマクロを持つtikz text widthは、32 cmの用紙で「Dimension too large」エラーを発生させる可能性があります — リテラル幅(例 0.44\textwidth)を使用してください。(3) tikzノードの外側の幅 = text width + 2×inner sep — ボックスエッジが正確にコンテナに収まるように、幅マクロからsepパディングを引いてください。

落とし穴 — 全面表示背景:ポスターのジオメトリは\geometry{papersize={32cm,20cm},margin=0cm}でなければなりません。正のマージンはbeamerの背景キャンバス原点をテキストエリアの上部にオフセットし、上部に白い帯(margin=1.1cmで約1.1 cm)を生成し、背景画像の上端をクリップします。ポスタービルド後に必ず確認:poster.pngの上部/下部3%行に白いピクセルがほぼ0であること(PILスキャン)。

ラボ調査ポスター(实验室调研)

中国語のタイトルがサポートされています(生成されたプリアンブルはctexをロードします;beamerタイトルのフォールバックはCJKを削除しなくなりました)。ポスタタイトルはアップロードタイトル形式{機関略称} {PI氏名}教授:テーマ — フックに従います(例 NYU 杨立昆教授:从卷积网络到世界模型 — 图灵奖得主的40年深度学习谱系 / 清华刘华平教授:机器人具身智能 — 从视触觉到操作学习)。--scheme bilibiliと--data JSONで実行:

{
  "title_1_uni": "纽约大学",
  "title_1_uni_en": "NEW YORK UNIVERSITY",
  "title_1_uni_color": "57068B",
  "title_1_pi": "Prof. Yann LeCun",
  "title_2": "从卷积网络到世界模型",
  "title_3": "图灵奖得主的40年深度学习谱系",
  "date": "2026-08-06"
}

パレットのソースオブトゥルースは<TEMPLATE_DIR>/sustech-theme/beamercolorthemesustech.sty(デフォルト青 / ラボ赤 / bilibiliピンク)です;デッキテーマはビルドにコピーされ、フレームはxelatex(デッキのエンジン)でコンパイルされます。背景slides-beamer/figures/background.pngが存在する必要があります(デッキの可視化分析区切り背景) — 生成器はこれなしではクローズします。

明示的なツールを使用した例:

uv run --project "<SKILLS_DIR>/paper-video-cover" `
  "<SKILLS_DIR>/paper-video-cover/scripts/generate_poster.py" `
  "<paper_dir>" `
  --lualatex "C:/path/to/lualatex.exe" `
  --pdftoppm "C:/path/to/pdftoppm.exe"

環境構成を使用した例:

$env:LUALATEX = "C:/path/to/lualatex.exe"
$env:PDFTOPPM = "C:/path/to/pdftoppm.exe"
uv run --project "<SKILLS_DIR>/paper-video-cover" `
  "<SKILLS_DIR>/paper-video-cover/scripts/generate_poster.py" `
  "<paper_dir>"

入力

生成器は、md_output/*/auto/の下にある最初のMinerUマークダウンファイルから、タイトル、会場、プロジェクトURL、図、メトリックを抽出します。キャプションベースの抽出で図が見つからない場合は、slides-beamer/figures/、paper-source/image/、source/image/、Figures/、次にmd_output/*/auto/images/を検索します。

PNG、JPEG、PDFソースがサポートされています。PDFは解決されたpdftoppmを使用します。参照される図が欠落、サポート外、空、または変換不可能な場合は致命的です。

すべてのJSONフィールドはオプションです。figure_mapのパスは絶対パス、または論文ディレクトリからの相対パスです:

{
  "title": "オーバーライドタイトル",
  "venue": "CVPR 2025",
  "title_font": 220,
  "cards_col1": [],
  "cards_col2": [],
  "figures": {"col1": ["fig1"], "col2": ["fig2"]},
  "figure_map": {
    "fig1": "md_output/1234.5678/auto/images/figure-1.png"
  }
}

バッチ処理

1行に1つの論文ディレクトリを記述したUTF-8ファイルを使用します。startとcountはオプションの位置引数です:

uv run --project "<SKILLS_DIR>/paper-video-cover" `
  "<SKILLS_DIR>/paper-video-cover/scripts/batch_generate.py" `
  "<papers_file>" 0 20

バッチはuvが選んだインタプリタを使用し、各論文に3つの成果物すべてを要求し、いずれかのアイテムが失敗した場合は非ゼロを返します。

失敗時の動作

必要な実行可能ファイルまたはパッケージ化されたテーマが欠落している、子コマンドが非ゼロを返す、または必須の成果物が欠落または空である場合、生成器は非ゼロを返します。非ゼロの結果は公開なしとして扱います;失敗した一時ビルドは削除され、以前の最終出力は変更されません。

関連スキル

  • skill://lab-survey-to-bilibili-runbook
  • skill://paper-group-to-beamer
  • skill://lab-poster-deck-format
  • skill://paper-bilibili-uploader
  • skill://paper-lab-survey-to-bilibili
  • skill://paper-to-bilibili

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Peytontalismanic424/paper-share-skills

Validate and upload narrated paper videos to Bilibili with biliup. Handles required landscape-first/portrait-second submissions, series uploads, CST scheduling, diagnostics, dry-run validation, and durable upload receipts. Trigger on: "upload to bilibili", "bilibili upload", "发布到B站", "上传到B站".

Peytontalismanic424/paper-share-skills

Download the TeX source (e-print tar.gz) of an arXiv paper from an arXiv URL or bare ID, and unpack it into paper_src/. Use FIRST whenever a pipeline input is an arXiv link and the TeX source is preferred over the PDF (paper-to-beamer, paper-to-bilibili, paper-venue-discovery). Invoke with an arXiv URL (abs/pdf/e-print, arxiv.org or export.arxiv.org) or a bare ID like 2509.07996v4.

Peytontalismanic424/paper-share-skills

Convert Beamer PDF slides into a fail-closed narrated MP4 with page-aligned narration, TTS audio, cover, and upload metadata. Trigger on narrated slides, slide video, or paper video requests.

Peytontalismanic424/paper-share-skills

Automated pipeline: paper (PDF or TeX source) → SUSTech Beamer slides (11-section 论文分享 structure) → compiled PDF. When TeX source is available, skip MinerU and extract content directly from LaTeX. Use when the user asks to create Beamer slides from an academic paper, or says "论文分享", "paper to slides", "make beamer from paper". Invoke with an absolute or relative path to a PDF, .tar.gz TeX archive, .tex file, or an arXiv URL/ID (source TeX is downloaded first via skill://paper-download-arxiv-paper-source).

Peytontalismanic424/paper-share-skills

Orchestrate a paper PDF through MinerU, SUSTech Beamer slides, complete Chinese narration, landscape and portrait video, metadata gates, and Bilibili upload. Supports single-paper and batch slides, video, or bilibili phases. Trigger on full paper-to-Bilibili requests, PDF-to-video publication, and batch paper publishing.

Peytontalismanic424/paper-share-skills

Convert a PDF (especially academic papers) to clean Markdown using MinerU — preserves reading order, LaTeX equations, tables, and figures, and runs on the GPU. Use when the user asks to convert/extract a PDF to markdown/text. Invoke directly — no need for the user to type the skill name.

Peytontalismanic424/paper-share-skills

Fix for undefined \setsource/\setdomains/\setpresenter/\setvenue commands when compiling SUSTech Beamer slides from the standard template. Copy the extended beamerthemesustech.sty from the sustech-slides-template repository.

関連スキル