AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Beamer Academic

skill-faust-donf-beamer-academic-beamer-academic · by Faust-Donf

>

— No reviews yet
0 installs
34 views
0.0% view→install

Install

$ agentstack add skill-faust-donf-beamer-academic-beamer-academic

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-faust-donf-beamer-academic-beamer-academic)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Beamer Academic? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Beamer Academic

Generate publication-quality Beamer slides from an academic paper in one automated pipeline.

Pipeline Overview

论文 → 素材提取 → 大纲生成 → [用户确认] → 内容填充 → 编译 → [交互修改循环]

Phase 0: Environment Check & Input Clarification

0.1 Locate Thesis File

Search current directory for thesis in priority order:

  1. .tex (LaTeX source — best quality, figures/equations directly reusable)
  2. .docx (Word — good for text extraction, figures embedded)
  3. .pdf (PDF — acceptable but figure extraction may lose quality)

If multiple candidates found, ask user which one. If none found, prompt: "请把论文文件放到当前目录(支持 .tex / .docx / .pdf)"

Recommend .tex or .docx over PDF: PDF figure extraction can produce low-quality raster images. If user only has PDF, warn: > 注意:PDF 提取的图片可能有质量损失。如果你有论文的 Word 或 LaTeX 源文件,建议优先使用。

0.2 Check LaTeX Environment

which xelatex

If missing, recommend user to install (this is a one-time setup, not optional):

> 你的系统还没有安装 LaTeX 环境。beamer PPT 需要 xelatex 编译,我来帮你装一下:

Then provide the command for user's OS and offer to run it:

| OS | Command | |----|---------| | macOS | brew install --cask mactex-no-gui (推荐,约3.5GB,装一次永久可用) | | Ubuntu/Debian | sudo apt install texlive-xetex texlive-lang-chinese texlive-fonts-recommended | | Fedora/RHEL | sudo dnf install texlive-xetex texlive-xecjk | | Windows (WSL) | sudo apt install texlive-xetex texlive-lang-chinese | | Arch | sudo pacman -S texlive-xetex texlive-langchinese |

Wait for installation to complete, verify with which xelatex, then proceed.

If user explicitly refuses to install (rare), fallback: deliver .tex + .sty + figures, suggest Overleaf.

0.3 Beamer Template (Ask User First)

Ask user about existing school beamer template:

> 你的学校/课题组有现成的 beamer 模板吗?(比如导师或师兄给过的 .sty 文件) > - 有:请放到当前目录,我直接使用 > - 没有:我来帮你找或用内置通用模板

If user has a template: use it directly, skip the built-in theme.

If user has NO template:

  1. Ask for school name
  2. Search for existing public beamer templates for that school:
  • GitHub search: {school name} beamer template
  • Common sources: Overleaf Gallery, CTAN
  1. If found: download and use (notify user which template)
  2. If not found: use built-in assets/beamerthemeAcademic.sty with school logo
  • Ask: "你能提供学校 logo 图片吗?(放到当前目录即可)"
  • If no logo available: search online for the school's logo, or proceed without logo

0.4 Configuration

Check for config.yaml in current directory:

  • Exists: read and use.
  • Missing: ask user for basic info, then generate from template at assets/config.yaml.

Required user info (ask if not in config):

  • Institution name and department
  • Author name, supervisor, major
  • Report type: defense | proposal | conference
  • Color preference: blue | red | green | purple | teal
  • Time limit (minutes): affects page count and content density
  • Language: thesis language vs. PPT language (e.g., 英文论文 → 中文PPT)
  • Chapnote preference: "每页要不要显示'对应论文 §X.X'的标注?"(some users find it helpful for committee, others find it cluttered)

0.5 Language Strategy

If thesis language ≠ PPT language, establish rules upfront:

> 你的论文是英文,PPT 要做中文版吗? > 对于专业术语,我会: > 1. 首次出现用"中文(English)"格式 > 2. 之后统一用中文 > 3. 公式/变量名保持英文不翻译 > > 这样处理可以吗?

Build a terminology mapping table (stored in materials/terms.md):

| English | 中文 | 首次出现页 |
|---------|------|-----------|
| disparity | 形态多样性 | P4 |
| diversity | 分类丰富度 | P4 |
| Ornstein-Uhlenbeck | OU 过程 | P8 |

Ensure 术语一致性: same concept uses same translation across all pages.

Phase 1: Material Extraction

Create materials/ directory. Extraction strategy depends on input format:

From .tex source (best)

  1. Figures: locate \includegraphics paths, copy originals → materials/figures/
  2. Tables: extract tabular/table environments → materials/tables/
  3. Equations: extract equation/align/$$ blocks → materials/equations.md
  4. Structure: parse \chapter/\section hierarchy → materials/structure.md

From .docx

  1. Figures: extract embedded images (python-docx or unzip) → materials/figures/
  2. Tables: extract table contents → materials/tables/
  3. Equations: extract OMML/LaTeX equations → materials/equations.md
  4. Structure: parse heading hierarchy → materials/structure.md

From .pdf (fallback)

  1. Figures: use pdfimages or read PDF for embedded images → materials/figures/
  • ⚠️ Quality may degrade. Prefer vector (PDF/SVG) extraction when possible.
  1. Tables: read and reconstruct → materials/tables/
  2. Equations: read and convert to LaTeX → materials/equations.md
  3. Structure: parse chapter/section from text → materials/structure.md

1.2 Material Confirmation (In-Conversation)

After extraction, present a figure catalog to user in conversation:

> ## 🖼️ 素材库(共提取 12 张图) > > | # | 文件名 | 来源 | 内容描述 | > |---|--------|------|----------| > | 1 | fig001.png | 论文图1 | 地质年代柱状图 | > | 2 | fig002.png | 论文图4 | PCoA 碎石图 | > | 3 | fig_003.png | 论文图8 | 形态空间散点图 | > | ... | | | | > > 哪些图是你答辩必须展示的? 可以说: > - "1, 3, 5, 8 必须用" > - "图7 不用了,跟图5 重复" > - "全部都可能用到"

This ensures:

  • Key figures won't be missed in layout assignment
  • User has a mental model of available materials before the outline phase
  • Low-quality or duplicate figures can be flagged early

Phase 2: Brainstorm Outline (Interactive, In-Conversation)

This phase determines the entire presentation structure through conversation with the user. All confirmation happens IN THE CHAT — never ask user to open a file.

2.0 Chapter Structure Principle

Follow the thesis's own structure as the PRIMARY basis for PPT chapters.

  • If thesis has explicit chapters (第一章...第四章): map directly to PPT chapters
  • If thesis has no chapters (like a conference paper with sections): group related sections into 3-5 logical chapters for the PPT
  • Do NOT invent arbitrary chapter divisions that don't match the thesis logic
  • The PPT chapter structure should feel natural to someone who has read the thesis

2.1 First Pass: Structure Proposal

After reading the thesis, propose the high-level structure directly in conversation:

> ## 📐 PPT 结构提案 > > 根据你的论文结构,我建议这样安排: > > 总页数:42 页(约 20 分钟答辩) > > | 章 | 标题 | 页数 | 对应论文 | 说明 | > |---|------|------|---------|------| > | 一 | 研究背景与科学问题 | 8页 | 第1章 | 背景+命题+假设+创新点 | > | 二 | 数据构建与描述性分析 | 7页 | 第2章 | 数据来源+特征工程+时序总览 | > | 三 | 演化模式与驱动机制 | 15页 | 第3章 | H1+H2+H3 三个假设检验 | > | 四 | 结论与展望 | 5页 | 第4章 | 主要结论+局限+展望+成果 | > > 你觉得这个结构可以吗? 可以告诉我: > - "第三章太长了,拆成两章" > - "加一章文献综述" > - "总页数控制在35页以内"

Wait for user to confirm or adjust. Loop until structure is approved.

2.2 Second Pass: Per-Section Detail

Once chapter structure is approved, expand each chapter in conversation (not in a file):

> ## 📋 第一章 详细安排(8页) > > | 页码 | 版式 | 标题 | 内容要点 | > |------|------|------|----------| > | P3 | 章节分隔 | 一、研究背景与科学问题 | — | > | P4 | 左文右图 | 寒武纪辐射与软体动物的演化窗口 | 演化窗口介绍 + 地质年代图 | > | P5 | 纯文段 | 经典命题:Disparity vs. Diversity | 形态多样性与丰富度争论 | > | P6 | 纯文段 | 驱动机制之一:外源突变 | Sinsk 事件背景 | > | P7 | 纯文段 | 驱动机制之二:系统发育约束 | OU 过程假说 | > | P8 | 列表 | 现有研究的四点不足 | 4个gap | > | P9 | 表格 | 研究目标与三个核心假设 | H1/H2/H3 表格 | > | P10 | 列表 | 论文的主要创新 | 5个创新点 | > > 这章的安排可以吗? 可以说: > - "P5和P6合并成一页" > - "P9加一列'若成立则说明'" > - "ok,继续下一章"

Present one chapter at a time. Wait for approval before showing the next chapter.

2.3 Third Pass: Final Confirmation

After all chapters are individually approved, show a complete summary in conversation:

> ## ✅ 最终大纲确认 > > | 章 | 页码范围 | 页数 | 版式分布 | > |---|---------|------|----------| > | 封面+目录 | P1–P2 | 2 | cover, toc | > | 一 研究背景 | P3–P10 | 8 | 分隔×1, 左文右图×1, 纯文段×3, 列表×1, 表格×1, 列表×1 | > | 二 数据构建 | P11–P17 | 7 | 分隔×1, ... | > | 三 演化机制 | P18–P32 | 15 | 分隔×1, ... | > | 四 结论展望 | P33–P37 | 5 | 分隔×1, ... | > | 致谢 | P38 | 1 | thanks | > | 合计 | | 38页 | | > > 确认后我将开始生成 beamer LaTeX 代码。确认吗?

HARD GATE: Do NOT proceed to Phase 3 until user explicitly confirms the final summary.

2.4 Save to outline.md

Only after final confirmation, save the approved structure to outline.md for Phase 3 reference. This file is for the AI's internal use — user has already approved everything in conversation.

Why In-Conversation Instead of File

  • Users who don't know markdown can follow along naturally in chat
  • Iterative refinement is faster (no "go check that file" round-trip)
  • Each chapter gets individual attention

Layout Selection Rules (used in 2.2 per-page assignment)

  1. Each chapter start → section-divider
  2. Core formula/model definition → formula
  3. Multi-row data comparison → table
  4. High-information figure (multi-panel, heatmap) → full-image
  5. Text-primary with supporting figure → text-left-image-right
  6. Figure-primary with interpretation → image-left-text-right
  7. Pure concept/background → text-only
  8. Chapter-end with clear conclusion → conclusion-box
  9. Between chapters → transition
  10. Parallel bullet points → list

Rhythm Constraints

  • No 3 consecutive pages with same layout
  • Each chapter uses at least 3 different layouts
  • Total: 35–50 pages (defense), 25–35 (proposal), 15–25 (conference)

Phase 3: Content Generation

  1. Copy assets/beamerthemeAcademic.sty to current directory.
  2. Generate defense.tex file header. Read references/tex-header.md for template.
  3. For each page in outline.md:
  • Load layout skeleton from references/layouts.md (find section by layout id)
  • Fill slots with thesis content + extracted materials
  1. Close with \end{document}.

Critical: Section Divider = Outline Page (NOT full-color page)

The section-divider page should be an Outline page that shows all chapters with the current chapter highlighted, NOT a full-color page with just a number. Use \tableofcontents[currentsection] or equivalent tabbing layout where current chapter is bold/colored and others are grayed out.

Example (每章开头的分隔页):

\begin{frame}
  \frametitle{Outline}
  \tableofcontents[currentsection]
\end{frame}

Critical: TOC Page Format

The TOC page (P2) must use Chinese numbering with em-dash subtitles:

\begin{frame}
  \frametitle{汇报提纲}
  \vskip0.3cm
  {\footnotesize
  \begin{tabbing}
  \hspace{0.4cm}\=\hspace{0.6cm}\=\kill
  \textbf{\color{accentcolor}一}\>\textbf{研究动机}\,——\,为什么需要新的序列建模方案\\[8pt]
  \textbf{\color{accentcolor}二}\>\textbf{模型架构}\,——\,Transformer 的核心设计\\[8pt]
  \textbf{\color{accentcolor}三}\>\textbf{实验结果}\,——\,翻译质量与消融分析\\[8pt]
  \textbf{\color{accentcolor}四}\>\textbf{总结与展望}\,——\,贡献与未来方向\\
  \end{tabbing}
  }
\end{frame}

Critical: Figure Extraction from PDF

NEVER use full-page PDF screenshots as figures. When source is PDF:

  1. Use pdfimages -all paper.pdf materials/figures/ to extract embedded vector/raster images
  2. If pdfimages not available, use mutool extract or Python PyMuPDF
  3. If only pdftoppm is available, crop the figure region ONLY:
  • First identify figure bounding box coordinates
  • Use Python PIL to crop the figure out of the page image
  • Remove surrounding text, page numbers, captions
  1. Quality check: if extracted figure contains visible paper text around it, it's WRONG — re-crop
  2. For well-known papers (Transformer, ResNet, etc.), consider re-drawing key diagrams with tikz

Critical: Anti-AI Writing Style (NO Bullet List Abuse)

The #1 sign of AI-generated slides is overuse of \begin{itemize} and uniform page structure.

Core rules:

  1. Each page COMBINES multiple elements (段落+keybox, 段落+公式+段落, 段落+表格+结论)
  2. Adjacent pages MUST use different composition patterns
  3. \begin{itemize} is BANNED. Only \enumerate with intro paragraph allowed
  4. 80% of pages use paragraph-style writing, not bullet points
  5. Use inline patterns: $\bullet$ \textbf{term}, \alert{keyword}, \textbf{title}\,——\,explanation

Read references/writing-style.md for 6 concrete composition patterns with LaTeX code examples.

Content Quality Rules

| Constraint | Value | |-----------|-------| | Text per page (text-only) | 150–200 chars | | Text per page (with figure) | 100–150 chars | | Equations per page | max 2 | | Table rows | 3–8 | | \alert{} keywords per page | 1–2 | | Page structure | COMBINE multiple elements (see writing-style.md) | | \itemize | BANNED |

Section Divider = Outline Page (Enforced)

Every chapter boundary MUST use an Outline page (\tableofcontents[currentsection]). This provides visual rhythm and structural navigation for the audience.

Anti-AI Title & Content Check

Before finalizing, check all titles and content. Read references/writing-style.md for the full red-flag list.

Quick check: "这个标题/段落像答辩学生写的还是 AI 写的?" 如果像 AI,改到像人。

Figure & Table Numbering

All figures and tables in the presentation MUST be numbered sequentially:

  • Figures: 图 1, 图 2, 图 3... (using \figcap{图 1\;描述文字})
  • Tables: in frame title or above table, mark as 表 1, 表 2...

Example:

\figcap{图 1\;Transformer 编码器--解码器架构}
\figcap{图 2\;多头注意力并行投影机制}

Table title pattern:

\frametitle{机器翻译 BLEU 对比(表 2)}
% or inside the frame:
{\small\textbf{表 1}\;不同层类型的复杂度对比}

Numbering must be consistent throughout — do not skip or repeat numbers.

Phase 4: Compilation & Layout Verification

4.1 Compile

xelatex -interaction=nonstopmode defense.tex && xelatex -interaction=nonstopmode defense.tex

On failure: read defense.log, fix common issues (missing image, font, overfull hbox), retry up to 3 times.

If user has no LaTeX environment, skip compilation and deliver .tex + .sty + materials/figures/.

4.2 Layout Bug Detection

After compilation, check defense.log for these common layout issues:

| Symptom | Cause | Fix | |---------|-------|-----| | Overfull \vbox on frame | Content exceeds page height | Reduce text, split into 2 pages, or shrink font | | Overfull \hbox with image | Image too wide for column | Add keepaspectratio, reduce width | | Image overlaps text in columns | \column width sum > \textwidth | Ensure left + right column ≤ 1.0 | | tikz overlay covers text | [remember picture, overlay] node position wrong | Adjust yshift/xshift values | | Text runs below frame | Too many paragraphs | Cut to 150-200 chars or split page |

Proactive overlap prevention (apply during Phase 3 content generation):

  • For text-left-image-right: left text ≤ 150 chars, image height ≤ 3.4cm per image
  • For image-left-text-right: right text ≤ 120 chars, image height ≤ 0.60\textheight
  • For full-image: use only tikz overlay positioning, no surrounding text except \figcap
  • For formula: max 2 equations, with \vskip0.1cm spacing between
  • Never put more than 3 \vskip commands in one frame (sign of overstuffing)

If overlap detected in compiled PDF (user reports "P7图文重叠了"):

  1. Identify the frame in .tex
  2. Check: is text too long? Is image too tall? Are column widths correct?
  3. Apply fix: reduce text / shrink image / split into 2 pages
  4. Recompile and verify

Phase 5: Interactive Editing (Guided Choices)

Present result:

> ✅ PDF 已生成:./defense.pdf(共 XX 页,预计答辩时长 XX 分钟) > 说修改意见,或说"满意"结束。

5.1 Guided Modification (Never Let User Struggle to Express)

When user gives vague feedback, offer concrete choices instead of asking them to describe:

| User says | Respond with choices | |-----------|---------------------| | "这页不好看" | "你觉得是:A. 文字太密想拆成两页?B. 图太小想换成满版图?C. 想换个版式?" | | "这里有点奇怪" | "我看到可能的问题:A. 图文重叠了 B. 文字太学术想简化 C. 想加个过渡说明?" | | "第三章不太行" | "第三章目前15页。你想:A. 整体缩减(砍到10页)?B. 某几页太密拆开?C. 补一页总结?" | | "改好看点" | "我可以:A. 加几页满版图让节奏更松 B. 关键结论用高亮框突出 C. 换个配色?" |

Principle: Always give 2–3 concrete options with preview of effect. User picks, not describes.

5.2 Modification Execution

| Type | Action | |------|--------| | Single page content edit | Edit corresponding \begin{frame}...\end{frame} | | Add/remove page | Update outline.md, regenerate affected section | | Global

…

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.