academic-poster-generator

Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster (beamerposter/tikzposter/baposter) with mandatory figure generation and a final rendered HTML deliverable.

53 stars

Best use case

academic-poster-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster (beamerposter/tikzposter/baposter) with mandatory figure generation and a final rendered HTML deliverable.

Teams using academic-poster-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/academic-poster-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/aipoch/medical-research-skills/main/scientific-skills/Other/academic-poster-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/academic-poster-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How academic-poster-generator Compares

Feature / Agentacademic-poster-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster (beamerposter/tikzposter/baposter) with mandatory figure generation and a final rendered HTML deliverable.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)

## When to Use

- You have one or more research paper PDFs and need a conference-style poster draft with standard sections (Intro/Methods/Results/Conclusions).
- You want to automatically extract title/authors/abstract/sections from a PDF and restructure them into concise poster bullet points.
- You need a LaTeX poster scaffold using **beamerposter**, **tikzposter**, or **baposter**, with standard poster sizes (A0/A1/36×48").
- You must ensure posters are **visual-first** (at least 2–3 generated figures) and pass an automated quality gate before delivery.
- You want a **browser-viewable final output** (`poster.rendered.html`) rather than a compiled PDF (PDF compilation is optional).

## Key Features

- **End-to-end pipeline**: PDF → metadata extraction → content structuring → figure generation → LaTeX poster assembly → HTML base conversion → agent rendering → final HTML.
- **Scripted PDF processing**:
  - Convert PDF pages to images for reference.
  - Extract metadata (title, authors, abstract, section structure).
  - Structure content into poster-ready bullet points with word limits.
- **Mandatory figure workflow**:
  - Generate at least **2–3 figures** (schematics/flowcharts/mechanisms/comparison charts).
  - Insert figures into LaTeX templates automatically or via config.
- **Template support**:
  - `assets/templates/beamerposter-template.tex`
  - `assets/templates/tikzposter-template.tex`
  - `assets/templates/baposter-template.tex`
- **HTML-first delivery policy**:
  - Final deliverables: `poster.rendered.html` + `figures/`
  - Intermediate artifacts are temporary and must not be returned.
- **Quality control**:
  - Automated checks for HTML/LaTeX outputs.
  - Manual checklist reference: `references/poster_quality_checklist.md`
- **Design guidance**:
  - Poster design principles: `references/design_principles.md`

## Dependencies

### Python (recommended)
- Python `>=3.8`
- `pypdf` (version not pinned)
- `pdfplumber` (version not pinned)
- `pdf2image` (version not pinned)
- `pytesseract` (version not pinned; required for OCR on scanned PDFs)
- `pandas` (version not pinned; optional for table handling)
- `Pillow` (version not pinned)
- `matplotlib` (version not pinned)

Install (example):
```bash
pip install pypdf pdfplumber pdf2image pytesseract pandas pillow matplotlib
```

### System tools
- `tesseract-ocr` (for OCR; required only for scanned PDFs)
- Poppler utilities (commonly required by `pdf2image`, e.g., `pdftoppm`)

### LaTeX (optional, only if compiling PDF)
- TeX Live / MiKTeX / MacTeX
- TeX packages (via `tlmgr`, names may vary by distribution):
  - `beamerposter`
  - `tikzposter`
  - `baposter`
  - `qrcode`
  - `xcolor`
  - `tcolorbox`
  - `subcaption`
  - `graphics`

Example:
```bash
tlmgr install beamerposter tikzposter baposter qrcode xcolor tcolorbox subcaption graphics
```

### HTML conversion
- `pandoc` (required for `--html-only` base HTML generation)
- `pdf2htmlEX` (optional; only if doing PDF → HTML rendering)

## Example Usage

### 1) Run the end-to-end pipeline (recommended)

Creates a timestamped directory under `output/` and supports HTML-only mode.

```bash
python scripts/run_poster_pipeline.py paper.pdf --html-only
```

Expected final structure:
```text
output/YYYYMMDD_HHMMSS/
├── poster.rendered.html
└── figures/
    ├── mechanism.png
    ├── process_flowchart.png
    └── comparison_chart.png
```

### 2) Run stages manually (fully reproducible)

#### Stage A — Extract metadata and structure content (temporary artifacts)
```bash
python scripts/extract_metadata.py paper.pdf metadata.json
python scripts/structure_content.py paper.pdf --json poster_content.json --latex content.tex --max-words 800
python scripts/convert_pdf_to_images.py paper.pdf paper_images/ --dpi 600
```

#### Stage B — Generate figures (mandatory)
At least **2–3** figures are required.

```bash
python scripts/generate_figures.py schematic "Cell signaling pathway" mechanism.png
python scripts/generate_figures.py flowchart "Step 1;Step 2;Step 3" process_flowchart.png
python scripts/generate_figures.py comparison '{"Control":[65],"Our Method":[87]}' comparison_chart.png
```

Or generate from a config:
```bash
python scripts/generate_figures.py config figures_config.json
```

#### Stage C — Create poster LaTeX from a template (temporary artifact)
```bash
cp assets/templates/beamerposter-template.tex poster.tex
# (Edit poster.tex: title/authors/institute + paste structured content)
```

#### Stage D — Insert figures into LaTeX (temporary artifact)
```bash
python scripts/insert_figures.py poster.tex --all
# or:
python scripts/insert_figures.py poster.tex --config figures_config.json
```

#### Stage E — Convert to base HTML and render final HTML (final artifact)
```bash
python scripts/convert_poster.py poster.tex --html-only
# Agent step: read poster.html, validate <img> paths, inject CSS/layout, output poster.rendered.html
```

#### Stage F — Quality control (mandatory)
```bash
python scripts/check_poster_quality.py poster.rendered.html
```

## Implementation Details

### Pipeline and file policy

All generated files must be placed under `output/` (preferably a timestamped subdirectory). Only the following are considered **final deliverables**:

- `poster.rendered.html`
- `figures/` directory (PNG figures)

All other files are **intermediate/temporary** and must not be returned to the user, including (non-exhaustive):
- `poster.tex`, `poster.html`
- `metadata.json`, `poster_content.json`, `figures_config.json`, `figures.json`
- LaTeX auxiliary files (`.aux`, `.log`, `.out`, etc.)

Conceptual flow:
```text
PDF → metadata extraction (temp) → content structuring (temp) → figure generation (final figures/)
→ LaTeX poster (temp) → base HTML (temp) → agent rendering → poster.rendered.html (final)
```

### PDF extraction approach

- Text and tables are extracted via `pdfplumber`.
- For scanned PDFs, OCR is performed by converting pages to images (`pdf2image`) and running `pytesseract`.

Typical extraction targets:
- Title/authors (first-page patterns)
- Abstract (from “Abstract” header to next section)
- Section blocks (Introduction/Methods/Results/Conclusion)
- Tables (converted to summaries for poster bullets)

### Content structuring rules

- Convert paragraphs to bullet points suitable for poster blocks.
- Enforce a poster-friendly word budget (commonly **600–800 words** total).
- Prefer 3–6 key visuals; summarize tables into a small set of metrics.

### Figure requirements (mandatory)

- Every poster must include **at least 2–3 generated figures**.
- Target **40–50%** of poster area as visual content.
- Figures should be **≥300 DPI**, with clear labels and concise captions.

Supported figure categories:
- Schematics (systems, pathways, conceptual diagrams)
- Flowcharts (procedures, pipelines, algorithms)
- Mechanism diagrams (biological/chemical processes)
- Comparison charts (bar charts, benchmarks)

### LaTeX package selection

Use one of the supported poster packages depending on style needs:

- **beamerposter** (traditional academic)
- **tikzposter** (modern, colorful)
- **baposter** (multi-column layouts)

Templates are provided in `assets/templates/`.

### HTML rendering requirements (agent step)

After `pandoc` produces `poster.html`, the renderer must:
1. Verify all `<img>` references exist and paths resolve to `figures/`.
2. Apply poster-grade CSS (grid columns, typography, spacing, captions).
3. Ensure accessibility: **WCAG AA contrast ≥ 4.5:1**.
4. Output `poster.rendered.html` as the only final HTML artifact.

Minimum layout expectations:
- 2–3 column grid on desktop; single column on narrow screens.
- Clear hierarchy: title/authors/institution, section headers, bullet lists, figure blocks with captions.

### Quality control requirements (mandatory)

Run `scripts/check_poster_quality.py` on the final output:
- Validate that images exist and render correctly.
- Confirm layout integrity (columns/blocks).
- Ensure readability (font sizes, spacing).
- Confirm contrast compliance (≥ 4.5:1).
- Confirm figure count (≥ 2–3) and that no placeholder text remains.

References:
- Design principles: `references/design_principles.md`
- Manual checklist: `references/poster_quality_checklist.md`

Related Skills

research-proposal-generator

53
from aipoch/medical-research-skills

Generates a comprehensive research proposal design based on input literature, including hypothesis, mechanism verification, and budget. Use when the user wants to design a research project from a paper.

short-video-script-generator

53
from aipoch/medical-research-skills

Generate popular science short video scripts based on topic, duration, and style. Invoke when the user needs to create scripts for short science videos.

pptx-posters

53
from aipoch/medical-research-skills

Generate PowerPoint presentations and academic posters from paper abstracts or full paper content, with automatic layout optimization and citation formatting.

poster-designer

53
from aipoch/medical-research-skills

Generate professional poster design concepts and optimized image-generation prompts, then automatically run a drawing script to produce the final poster image when a user needs a poster.

plan-generator

53
from aipoch/medical-research-skills

Automatically generates a Markdown final-exam review plan or lab experiment schedule when you provide a date range, tasks/items, and available daily hours (via interactive prompts or a one-time JSON input).

paper-tweet-generator

53
from aipoch/medical-research-skills

Generates a structured reading tweet from an academic paper (PDF, Word, or Text), highlighting specific product advantages. Use when the user wants to turn a document into a social media post or reading summary.

meeting-minutes-generator

53
from aipoch/medical-research-skills

Generates structured meeting minutes from text transcripts. Use when the user provides text content and wants a structured summary with a signature.

medical-case-report-generator

53
from aipoch/medical-research-skills

Generates a patient-friendly medical case report tweet from case images and disease name. Use when the user provides a medical case image and wants a structured report or tweet.

market-research-report-generator

53
from aipoch/medical-research-skills

Generates professional market research reports by analyzing business intent, decision levels, and conducting multi-source data retrieval (Web, PubMed, Clinical Trials).

expert-interview-generator

53
from aipoch/medical-research-skills

Generates a full expert interview article including introduction, Q&A body, and summary based on interview questions and expert background. Use when you have interview questions and an expert profile and need a polished article.

conference-tweet-generator

53
from aipoch/medical-research-skills

Generates academic conference tweets and summaries by filtering abstracts, translating content, and creating engaging titles. Use when you need to process conference abstracts into social media content.

academic-norm-review

53
from aipoch/medical-research-skills

Detects content similarity, verifies standardized citations and abbreviations, and flags potential academic integrity risks; use it before submission, during academic writing QA, or for compliance reviews.