Communitygithub.com

Peytontalismanic424/paper-share-skills

Pipeline automatisée : article (PDF ou source TeX) → diapositives Beamer au thème SUSTech (structure 论文分享 en 11 sections) → PDF compilé.

Qu'est-ce que paper-share-skills ?

Cette skill automatise la conversion d'un article académique (PDF ou source TeX) en une présentation Beamer prête à l'emploi, au thème SUSTech, organisée selon la structure standardisée « 论文分享 » (présentation d'article) en 11 sections. Elle est idéale pour les séminaires de laboratoire, les réunions de groupe ou toute présentation d'article nécessitant un format professionnel et cohérent. La skill prend en charge plusieurs entrées : un chemin absolu ou relatif vers un fichier PDF, une archive TeX (.tar.gz), un fichier .tex, ou directement un URL/ID arXiv (auquel cas le code source TeX est d'abord téléchargé). Une fois le contenu extrait (avec une priorité donnée à la source TeX pour une meilleure précision des tableaux et de la structure), la skill installe le modèle Beamer SUSTech, crée un répertoire de travail, remplit les 12 sections prédéfinies (page de titre, table des matières améliorée, auteurs, contexte, méthodes, expériences, etc.), gère les figures et les tableaux, et compile finalement la présentation en PDF. Le point fort de cette skill est qu'elle évite les outils lourds d'OCR (comme MinerU) lorsque la source TeX est disponible, ce qui la rend plus rapide et plus fiable. Elle est conçue pour être utilisée avec Claude Code, Cursor, Codex ou tout autre assistant de codage IA qui peut exécuter des scripts locaux ; l'exécution se fait entièrement via des commandes shell et des scripts Python dans l'environnement local de l'utilisateur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-to-beamer

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Aperçu

Depuis le README du skill

paper-share-skills preview

Documentation

Pipeline Article → Diapositives Beamer

À partir d'un article (PDF ou source TeX), produire une présentation Beamer compilée sur le thème SUSTech sous 论文分享/<LIEU> - <TITRE_COURT>/.

Variante de thème : \usetheme{sustech} (minuscules, Variante A), provenant de https://github.com/yhbcode000/sustech-slides-template.git. N'utilise PAS \usetheme{SUSTech} (Variante B, utilisée dans MT3) — elle a des macros différentes et aucune page de séparation de section.

Ratio d'aspect par défaut : aspectratio=1610 (16:10). N'utilise PAS 169 (16:9) — 1610 est préféré pour la compatibilité ordinateur portable/projecteur et donne un peu plus d'espace vertical pour un contenu dense.

Environnement Bash : Toutes les commandes shell s'exécutent sous l'outil bash de la session, qui sur Windows est Git Bash. Les commandes rm -rf, cp -r, mkdir -p de style Unix sont disponibles. Le répertoire de travail est défini par bloc via cwd.

Exigences (OBLIGATOIRES)

Chaque jeu de diapositives DOIT satisfaire ces règles. Aucune exception sauf indication contraire.

  1. Pas de débordement de diapositive (strict) — toutes les diapositives DOIVENT se compiler sans avertissements Overfull \hbox ou Overfull \vbox. Suivez skill://sustech-beamer-overflow : une seule colonne, maximum 3 blocs + 1 callout, tableaux ≤5 colonnes avec \footnotesize, pas de \resizebox. La SEULE exception est la page d'index/table des matières (mise en page \twopane) — un léger débordement vertical (Overfull \vbox) sur la diapositive de TdM est toléré.

Phase 1 — Configuration du répertoire

  1. Accepter $ARGUMENTS — un chemin de PDF, une archive TeX .tar.gz, ou un fichier .tex (absolu ou relatif depuis le répertoire de travail de la session), ou un URL arXiv / un ID arXiv brut.

  2. Si l'entrée est un URL arXiv ou un ID brut (correspond à ^\d{4}\.\d{4,5}(v\d+)?$ ou contient arxiv.org/(abs|pdf|e-print)/), télécharger d'abord la source TeX :

    uv run --no-project python \
      "<SKILLS_DIR>/paper-download-arxiv-paper-source/scripts/download_source.py" \
      "<arxiv-ref>"        # sortie par défaut = répertoire de travail de la session
    
    • Si stdout se termine par TEX_SOURCES: : dériver DIR_NAME — lieu à partir de \setsource{Lieu}{Année} dans le fichier TeX paper_src/ extrait (repli \markboth, puis arXiv <année>) ; titre court = les 1 à 3 premiers mots significatifs de \title{...} (repli : demander à l'utilisateur, règle existante). Puis mkdir -p "论文分享/<DIR_NAME>" et mv arXiv-<id>.tar.gz paper_src "论文分享/<DIR_NAME>".
    • Si stdout se termine par PDF_ONLY: <chemin> : l'article n'a pas de source TeX sur arXiv — copier ce PDF vers 论文分享/<DIR_NAME>/ selon la branche .pdf ci-dessous (le chemin MinerU s'applique, PHASE 2 PORTE DE DÉCISION inchangée).
    • Si la commande se termine avec un code non nul : s'arrêter et signaler le message d'erreur stderr à l'utilisateur.
  3. Dériver un nom de répertoire court <LIEU> - <TITRE_COURT> (les entrées arXiv l'ont déjà dérivé à l'étape 2) :

    • Supprimer .pdf / .tar.gz / .tgz / .tex, remplacer les espaces/tirets/caractères spéciaux.
    • Demander le nom à l'utilisateur si le lieu/titre ne peuvent pas être déduits du nom de fichier.
    • Convention : les exemples existants sont SCIENCE ROBOTICS - HIL SERL, SCIENCE ROBOTICS - MT3.
  4. Créer 论文分享/<DIR_NAME>/ et extraire/copier la source là-bas (les exécutions arXiv ont déjà déplacé l'archive + paper_src/ à l'étape 2) :

    • .tar.gz / .tgz : extraire avec tar -xzf dans paper_src/.
    • .pdf : copier directement à la racine du répertoire de l'article.
    • .tex : copier les fichiers source dans paper_src/.

Phase 2 — Extraction du contenu

PORTE DE DÉCISION : Si la source TeX est disponible (archive .tar.gz contenant .tex, ou fichier .tex direct), ignorer MinerU entièrement. Lire tout le contenu (titre, auteurs, résumé, sections, tableaux, références) directement à partir de la source TeX en utilisant read — c'est plus précis que la sortie de MinerU et préserve exactement les structures des tableaux.

Exécuter MinerU uniquement lorsque l'entrée est un PDF sans source TeX disponible :

"$MINERU_PYTHON" \
  "<SKILLS_DIR>/pdf-to-markdown/convert.py" \
  "论文分享/<DIR_NAME>/<pdf_filename>.pdf" \
  "论文分享/<DIR_NAME>/md_output" \
  --lang en
  • Articles en anglais : --lang en. Chinois/mixte : --lang ch.
  • Le wrapper affiche DONE -> ...md en cas de succès.
  • La sortie se trouve dans md_output/<name>/auto/<name>.md.

Si l'environnement MinerU est manquant, s'arrêter et dire à l'utilisateur de l'installer selon les prérequis de la skill pdf-to-markdown.



Phase 3 — Installer le modèle empaqueté

Le paquet promu paper-to-beamer est la source de modèle principale et hors ligne :

uv run --project "<SKILLS_DIR>/paper-to-beamer" python \
  "<SKILLS_DIR>/paper-to-beamer/scripts/copy_template.py" \
  --output "论文分享/<DIR_NAME>/slides-template"

Ceci copie le lot main_template.tex, latexmkrc et sustech-theme/ vérifié. Un clone réseau n'est jamais une solution de repli. Seulement lorsque l'utilisateur demande explicitement un rafraîchissement du modèle, le dépôt amont peut être cloné dans un répertoire temporaire séparé pour révision avant la publication du paquet.


Phase 4 — Créer le répertoire de travail et copier les éléments essentiels

# cwd: $PP_ROOT
mkdir -p "论文分享/<DIR_NAME>/slides-beamer"
cp -r "论文分享/<DIR_NAME>/slides-template/sustech-theme" \
  "论文分享/<DIR_NAME>/slides-beamer/"
cp "论文分享/<DIR_NAME>/slides-template/latexmkrc" \
  "论文分享/<DIR_NAME>/slides-beamer/"
cp "论文分享/<DIR_NAME>/slides-template/main_template.tex" \
  "论文分享/<DIR_NAME>/slides-beamer/main.tex"
mkdir -p "论文分享/<DIR_NAME>/slides-beamer/figures"

Toutes les modifications ultérieures ciblent uniquement slides-beamer/. slides-template/ est conservé vierge comme référence.


Phase 5 — Lire et extraire le contenu

Lorsque la source TeX est disponible (préférée — archive .tar.gz ou fichier .tex) : lire le fichier .tex principal de paper_src/ directement en utilisant read. Tout le contenu (titre, auteurs, résumé, sections, tableaux, références) est extrait de la source LaTeX structurée. Les tableaux peuvent être recréés directement à partir des environnements tabular — pas besoin de MinerU.

Lorsque seul le Markdown est disponible (entrée PDF uniquement) : lire md_output/<name>/auto/<name>.md. Extraire ces points de données :

Phase 6 — Remplir slides-beamer/main.tex

Ceci est la phase créative principale. Lire main.tex (copié du modèle), puis l'éditer section par section pour remplacer chaque espace réservé \ph{…} et \phfig par le contenu réel du Markdown.

Utiliser l' exemple HIL SERL comme référence de style rempli : 论文分享/SCIENCE ROBOTICS - HIL SERL/slides-beamer/main.tex.

6.0 Métadonnées du préambule

  • \title[ACRONYM 论文分享]{Titre descriptif chinois} — titre chinois comme titre principal ; le titre court DOIT inclure le suffixe "论文分享". Suivre HIL SERL : \title[HIL-SERL 论文分享]{...}.
  • \subtitle{Titre original en anglais de l'article} — titre original en anglais comme sous-titre.
  • \author[court]{…} — liste complète des auteurs de l'article.
  • \institute[court]{…} — institutions principales.
  • \setsource{Lieu}{Année} — lieu de publication de l'article.
  • \setdomains{\domaintag{...}\domaintag{...}\domaintag{...}} — 3-4 mots-clés du domaine de recherche affichés sur la page de titre sous forme de pastilles colorées. Les mots-clés DOIVENT être en chinois (par ex. 多智能体RL, LLM Agent, RL后训练). Les termes anglais comme Multi-Agent RL, RL Post-Training ne sont JAMAIS autorisés — ils semblent incohérents à côté du texte chinois et brisent le style de présentation bilingue du thème SUSTech.
  • \setpresenter{$PRESENTER} (par défaut) ou demander à l'utilisateur.
  • \setvenue{<lieu de la présentation>} (par défaut : demander à l'utilisateur).
  • Note de bas de page de la page de titre \creditline (affichage par défaut : 哔哩哔哩 · 白拾的物理AI组会 · github.com/yhbcode000/sustech-slides-template). Recommandé de conserver pour les partages/publications vidéo ; pour les présentations/soutenances nécessitant une version épurée, ajouter \hidecredits dans le préambule pour le désactiver, ou \setcreditline{} pour le vider, \setcreditline{...} pour un texte personnalisé.

Supprimer les macros d'aide aux espaces réservés \ph et \phfig — elles ne sont plus nécessaires.

6.1 Page de titre (Title page)

La diapositive \titlepage reste telle quelle. Les métadonnées du préambule la pilotent.

6.2 📑 Page de table des matières (TdM améliorée)

Le modèle utilise maintenant une mise en page à deux volets \twopane (du thème). Le volet gauche contient une TdM compacte via {\tocdense\small\tableofcontents[hideallsubsections]}. Le volet droit contient trois blocs :

  1. \block{核心观察} — 3-5 métriques/clés de l'article
  2. \block{附录讨论} — 3-5 points forts des annexes (signal Oral, comparaisons, explications de méthode)
  3. \callout[一句话概括] — résumé de l'article en une phrase

La diapositive séparée 论文信息 est SUPPRIMÉE. Le titre/lieu/auteurs sont déjà dans le préambule. Le résumé en une phrase se trouve dans le callout de la TdM. Pas de diapositive d'information séparée nécessaire.

Espacement de la TdM : Utiliser {\tocdense\small\tableofcontents[hideallsubsections]} — \tocdense (du thème) compacte l'espacement de la TdM Beamer. Préfixer avec \vspace{-0.6em} pour rapprocher le contenu du titre.

Marge gauche : Le \tocdense du thème ajoute une marge gauche \hskip2em pour une disposition équilibrée de la TdM.

6.3 👤 Présentation des auteurs — VALIDER EN LIGNE AVANT D'ÉCRIRE

CRITIQUE : Vous DEVEZ rechercher en ligne les biographies des auteurs AVANT d'écrire cette diapositive. Les PDF d'articles ne fournissent que les noms et affiliations — ils manquent de noms chinois, de postes actuels, de travaux notables antérieurs, de noms de laboratoires et de reconnaissances récentes. Des entrées génériques comme "Université Tsinghua, premier auteur" sont INACCEPTABLES.

Procédure de recherche (à exécuter AVANT d'écrire la diapositive) :

  1. Écrire vers xd://web_search avec {"query": "<premier auteur> <institution> <domaine de l'article>", "limit": 5} — obtenir le nom chinois, le rôle actuel, les travaux antérieurs, le laboratoire.
  2. Écrire vers xd://web_search avec {"query": "<auteur corr 1> <institution>", "limit": 5} — idem pour chaque auteur correspondant.
  3. Recouper au moins 2 sources par auteur. Privilégier les pages personnelles ou Google Scholar.
  4. Rechercher également via xd://web_search avec {"query": "<institution> <lab/prof> <domaine>", "limit": 5} pour le contexte du laboratoire.

Ce qu'il faut extraire des résultats de recherche :

  • Nom chinois (les PDF d'articles manquent souvent de caractères chinois)
  • Poste actuel (professeur assistant ? doctorant ? industrie ? l'affiliation de l'article peut être obsolète)
  • Travaux antérieurs notables (pour quoi cette personne est-elle connue ? ex. MAPPO, RLinf, GRPO)
  • Nom du laboratoire / groupe (ex. EDI Lab, NICS-EFC, RAIL)
  • Reconnaissances récentes (articles dans des lieux prestigieux, prix, rôles de leadership)

Remplir la diapositive avec des biographies télégraphiques sourcées :

\begin{frame}{作者介绍}
  \begin{block}{核心作者}
    \begin{itemize}
      \item \shl{<premier auteur>}(<Chinois>):<département>, <rôle>. Connu pour \keyword{<travaux antérieurs>}. Dans cet article, <rôle>.
      \item Collaborateurs provenant de <institutions>, constituant une équipe <description>.
    \end{itemize}
  \end{block}
  \tightgap
  \begin{block}{通讯作者}
    \begin{itemize}
      \item \shl{<corr 1>}(<Chinois>):<poste> @ <inst>,<lab> PI. Domaines de recherche : \keyword{<dom1>}、\keyword{<dom2>}. <Travail notable>. Dans cet article, <rôle>.
      \item \shl{<corr 2>}(<Chinois>):<poste> @ <inst>,<lab>. <Notable>. Dans cet article, <rôle>.
    \end{itemize}
  \end{block}
  \tightgap
  \begin{callout}[研究脉络]
    <Trajectoire de l'équipe menant à cet article>.
  \end{callout}
\end{frame}

6.4 📋 Contexte et motivation

Mapper à la section 研究背景与动机 du modèle :

  • Définir \renewcommand{\secblurb}{…} (résumé en une phrase) avant \section.
  • Remplir les espaces réservés des puces avec une motivation télégraphique tirée du résumé/introduction.
  • Déplacer la figure vers une diapositive dédiée [plain,c] après cette diapositive de contenu : \fitfigure{fig1_overview.jpg} + \figcap{1}{légende}. Supprimer l'encadré \begin{columns} — cette diapositive reste uniquement textuelle.
  • Remplir \metric{…}{…} avec jusqu'à 3 chiffres clés de l'article.

6.5 Travaux connexes

Mapper à la section 相关工作 :

  • Remplir les domaines de recherche à partir de la section Travaux connexes de l'article.
  • Lister les méthodes de base réelles et leurs relations.
  • Indiquer le différenciateur clé dans le callout.

Si l'article a une section "Travaux connexes" claire, l'utiliser. Sinon, condenser à partir de références éparses dans l'introduction.

6.6 🔧 Méthode

Mapper à la section 方法 (2 diapositives : aperçu + conception de base).

Diapositive 1 (Aperçu) :

  • Lister les composants du système à partir de la section méthode de l'article.
  • Déplacer la figure vers une diapositive dédiée [plain,c] après cette diapositive de contenu : \fitfigure{fig2_system.jpg} + \figcap{2}{légende}. Supprimer l'encadré \begin{columns}.

Diapositive 2 (Conception de base) :

  • Lister jusqu'à 4 éléments de conception clés.
  • Ajouter un résumé d'une ligne dans le callout.

6.7 🧪 Conception expérimentale

Mapper à la section 实验设计 :

  • Lister les catégories de tâches/ensembles de données.
  • Indiquer le protocole d'évaluation et les références.
  • Déplacer la figure vers une diapositive dédiée [plain,c] après cette diapositive de contenu : \fitfigure{fig3_tasks.jpg} + \figcap{3}{légende}. Supprimer l'encadré \begin{columns}.

6.8 📈 Résultats et analyse

Mapper à la section 实验结果 (2 diapositives : tableau principal + analyse).

Diapositive 1 (Tableau principal) :

  • Recréer le tableau avec les données réelles de l'article.
  • Garder ≤5 colonnes, ≤6 lignes.
  • Mettre en évidence les meilleurs résultats avec \shl{…}.
  • Utiliser \theadrow, \altrow, \thc{…} avec booktabs.
  • Conclusion en une ligne dans le callout.

Diapositive 2 (Analyse) :

  • Analyse en points (3–4 observations).
  • Figure d'analyse sur une diapositive dédiée [plain,c] après les points d'analyse.

6.9 💡 Résumé des points clés

Mapper à la section 要点总结 (correspond à "核心贡献") :

  • 3 points clés énumérés.
  • Résumé en une phrase dans le callout.

6.10 ⚠️ Limites et discussion

Mapper à la section 局限性 :

  • 3–4 limites.
  • Directions futures identifiées par l'auteur dans le callout.

6.11 📚 Références

Mapper à la diapositive 参考文献 :

  • Remplir les entrées bibitem avec les références réelles de l'article.
  • La première bibitem doit être l'article lui-même (marqué (本文)).
  • Inclure 3–5 références clés.

6.12 💬 Q&R

Remplacer le texte de l'espace réservé dans la diapositive Q&R par :

  • Nom du présentateur, institution, coordonnées.
  • Conserver le style Q&A (\fontsize{40}{44} etc.).

6.13 Gestion des figures

Pour chaque espace réservé nécessitant une figure :

  1. Source TeX disponible (préférée) : copier les figures de paper_src/figures/ vers slides-beamer/figures/ avec des noms sémantiques : fig1_overview.pdf, fig2_system.pdf, etc. Les sources TeX utilisent des figures vectorielles .pdf — qualité supérieure.
  2. Markdown disponible : lister les images de md_output/<name>/auto/images/. Chacune est un .jpg nommé par hachage. Choisir la figure pertinente en inspectant avec inspect_image ou à partir des références ![](images/...) du markdown. est UNIQUEMENT pour les diapositives de contenu où la figure partage l'espace avec le texte.
  3. Placer la figure sur sa propre diapositive dédiée — JAMAIS à l'intérieur d'un bloc \begin{columns} :
    \begin{frame}[plain,c]
      \centering
      \includegraphics[height=0.92\textheight,width=\textwidth,keepaspectratio]{filename}
      \figcap{N}{texte de la légende}
    \end{frame}
    

Si une figure est manquante ou impossible à capturer, insérer un callout d'espace réservé à la place (l'assistant \phfig a été supprimé en 6.0, donc ne PAS y faire référence

…

[section tronquée pour la traduction]

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

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

Generate a deterministic 16:10 video-cover poster from a paper directory. Extracts paper metadata and figures and atomically produces poster.tex, poster.pdf, and poster.png. Use for paper-video covers, not conference posters.

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.

Skills associés