Paper Poster: From Paper to Conference Poster
SkillDocs & knowledgeGenerate a conference poster (article + tcbposter LaTeX → A0/A1 PDF + editable PPTX + SVG) from a compiled paper. Use when user says \"做海报\", \"制作海报\", \"conference poster\", \"make poster\", \"生成poster\", \"poster session\", or wants to create a poster for a conference presentation.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Paper Poster: From Paper to Conference Poster skill
What this skill tells your AI
The instructions your AI receives, as published by openlair/dr-claw in skills/aris-paper-poster/SKILL.md and read by ahel’s review.
Generate a conference poster from: $ARGUMENTS
Context
This skill runs after Workflow 3 (/aris-paper-writing). It takes a compiled paper and generates a print-ready poster for conference poster sessions. The poster extracts key content from the paper — it does not dump the full paper text onto a poster.
Unlike papers (dense prose, 8-15 pages), posters are visual-first: one page, 4 columns, bullet points only, figures dominant. A good poster tells the story in 60 seconds.
Constants
- VENUE =
NeurIPS— Target venue, determines color scheme. Supported:NeurIPS,ICML,ICLR,AAAI,ACL,EMNLP,CVPR,ECCV,GENERIC. Override via argument (e.g.,/aris-paper-poster "— venue: ICML"). - POSTER_SIZE =
A0— Paper size. Options:A0(841x1189mm, default),A1(594x841mm). - ORIENTATION =
landscape— Orientation. Options:landscape(default),portrait. - COLUMNS = 4 — Number of content columns. Typical: 4 for landscape A0 (IMRAD), 3 for portrait A0 (research consensus), 2 for portrait A1. Portrait A0 should NEVER use 4 columns — text becomes too narrow and unreadable.
- PAPER_DIR =
paper/— Directory containing the compiled paper (main.tex + figures/). - OUTPUT_DIR =
poster/— Output directory for all poster files. - REVIEWER_MODEL =
gpt-5.4— Model used via Codex MCP for poster review. - AUTO_PROCEED = false — At each checkpoint, always wait for explicit user confirmation. Set
trueonly if user explicitly requests fully autonomous mode. - COMPILER =
latexmk— LaTeX build tool. - ENGINE =
pdflatex— LaTeX engine. Usexelatexfor CJK text.
💡 Override:
/aris-paper-poster "paper/" — venue: CVPR, size: A1, orientation: portrait, columns: 3
Venue Color Schemes
Use deep, saturated colors for primary — pastel/light colors wash out on large posters viewed from distance. Each venue uses a 3-color system: primary (dark, for title bar), secondary (medium, for section headers), accent (contrast, for highlights).
| Venue | Primary | Secondary | Accent | Background | Text |
|---|---|---|---|---|---|
| NeurIPS | #4C1D95 (deep purple) | #6D28D9 (purple) | #2563EB (blue) | #F5F3FF | #1F2937 |
| ICML | #7F1D1D (deep maroon) | #B91C1C (red) | #1E40AF (blue) | #EDD5D5 | #111827 |
| ICLR | #065F46 (deep green) | #059669 (green) | #0284C7 (blue) | #F0FDF4 | #1F2937 |
| CVPR | #1E3A8A (deep blue) | #2563EB (blue) | #7C3AED (purple) | #F8FAFC | #1F2937 |
| AAAI | #0C4A6E (deep navy) | #0369A1 (blue) | #DC2626 (red) | #F0F9FF | #1F2937 |
| ACL | #155E75 (deep teal) | #0891B2 (teal) | #7C3AED (purple) | #F0FDFA | #1F2937 |
| EMNLP | #713F12 (deep amber) | #D97706 (amber) | #2563EB (blue) | #FFFBEB | #1F2937 |
| ECCV | #701A75 (deep fuchsia) | #C026D3 (fuchsia) | #0891B2 (teal) | #FDF4FF | #1F2937 |
| GENERIC | #1E293B (deep slate) | #334155 (slate) | #2563EB (blue) | #F8FAFC | #1F2937 |
⚠️ Color lesson: Never use light/pastel colors (e.g.,
#8B5CF6) as primary — they look washed out on A0 posters. Always use the darkest shade as primary for the title bar.
State Persistence (Compact Recovery)
Poster generation can be long. Persist state to poster/POSTER_STATE.json after each phase:
{
"phase": 3,
"venue": "NeurIPS",
"poster_size": "A0",
"orientation": "landscape",
"columns": 4,
"figures_selected": ["architecture.pdf", "results.pdf"],
"codex_thread_id": "019cfcf4-...",
"status": "in_progress",
"timestamp": "2026-03-18T15:00:00"
}
On startup: if POSTER_STATE.json exists with "status": "in_progress" and within 24h → resume from saved phase. Otherwise → fresh start.
Critical LaTeX Architecture Decisions
⚠️ MUST use
articleclass, NEVERbeamerclass. The beamer class consumes too many TeX grouping levels for its overlay/mode system. Combined with tcbposter'senhancedstyle on 8+ posterboxes, this triggers! TeX capacity exceeded, sorry [grouping levels=255]. The article class + geometry package for custom page size is the correct approach. This was validated through 5 failed compilation attempts with beamer before switching to article.
⚠️ NEVER use
adjustboxpackage. It may not be installed in minimal TeX distributions. Use plain\includegraphics[width=0.96\linewidth]{file}instead. Do NOT usemax heightoption (requires adjustbox).
Template Foundation
\documentclass{article}
% A0 landscape: paperwidth=1189mm,paperheight=841mm
% A0 portrait: paperwidth=841mm,paperheight=1189mm
\usepackage[paperwidth=1189mm,paperheight=841mm,margin=0mm]{geometry}
\usepackage{tcolorbox}
\tcbuselibrary{poster,skins,fitting}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
\usepackage[table]{xcolor} % MUST use [table] option for \rowcolor in tables
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\pagestyle{empty}
⚠️ NEVER use
\usepackage[most]{tcolorbox}— it pulls inlistingsutf8.stywhich may not be installed. Always use\tcbuselibrary{poster,skins,fitting}explicitly.
⚠️ Use
[table]{xcolor}not plain{xcolor}— needed for\rowcolorin benchmark tables. Thecolortblpackage is loaded automatically by this option.
tcbposter Layout Rules (Critical)
⚠️ The #1 cause of poster failures is content overflow. tcbposter uses a fixed grid — content that exceeds the box is silently clipped with no compilation error. You will NOT see any warning; the poster will simply be cut off.
⚠️ The #2 cause is large whitespace gaps. Using too few rows (e.g.,
rows=5) creates ~168mm per row on A0 landscape. If title text only needs 120mm, the remaining 48mm is wasted whitespace. Solution: userows=20for fine-grained control (~42mm per row).
Grid System: rows=20 (Critical)
Use rows=20 for A0 landscape. Each row ≈ 42mm, giving precise control over section heights.
Recommended row allocation for 4-column A0 landscape:
| Section | Rows | Height | Row range |
|---|---|---|---|
| Title bar | 3 | ~126mm | top to row4 |
| Stat banner | 2 | ~84mm | row4 to row6 |
| Body content | 14 | ~588mm | row6 to bottom |
Key principle: Always use between=rowN and rowM syntax (not below=name) for precise vertical placement. The below= syntax lets tcolorbox auto-place, which often leaves unwanted gaps.
Row Count Guidance
| Poster Size | Orientation | Recommended rows | Columns | Row height |
|---|---|---|---|---|
| A0 | landscape | 20 | 4 | ~42mm |
| A0 | portrait | 20 | 3 | ~59mm |
| A1 | landscape | 16 | 3 | ~37mm |
| A1 | portrait | 20 | 2 | ~30mm |
Portrait A0 Layout (3 columns, rows=20)
⚠️ Portrait A0 posters use 2-3 columns, NEVER 4. Research consensus: "Two columns is typical for a poster with a portrait orientation" (Colin Purrington, NYU poster guides). At 841mm width, 4 columns give only ~195mm per column — too narrow for readable text at poster-session distance. 3 columns (~260mm each) is the recommended default for content-rich papers. Use 2 columns for simpler posters or when figures need more horizontal space.
For portrait posters (841x1189mm), use a 3-column, 3-row-band layout:
| Section | Rows | Row range | Content |
|---|---|---|---|
| Title bar | 4 | top to row4 | Title + authors + venue (span=3) |
| Stat banner | 2 | row4 to row6 | 3 headline stat callouts (span=3) |
| Row A | 5 | row6 to row11 | Background+Motivation, Method (hero fig), Key Results (fig) |
| Row B | 5 | row11 to row16 | Contributions, Equations+Ablation, Result 2 (fig+table) |
| Row C | 4 | row16 to bottom | References+QR, Setup+Benchmarks, Key Takeaways |
3-column portrait layout diagram:
┌─────────────────────────────────────┐
│ TITLE BAR (span=3) │
├─────────────────────────────────────┤
│ Stat 1 │ Stat 2 │ Stat 3 │
├────────────┼────────────┼──────────┤
│ Background │ Method │ Result 1 │
│ & Motiv. │ (hero fig) │ (figure) │
├────────────┼────────────┼──────────┤
│ Contribu- │ Equations │ Result 2 │
│ tions │ & Ablation │ (fig+tbl)│
├────────────┼────────────┼──────────┤
│ References │ Setup & │ Key │
│ + QR Code │ Benchmarks │Takeaways │
└────────────┴────────────┴──────────┘
⚠️ All 3 columns in each row band share the same row boundaries. This ensures cross-column alignment. Never mix
row6 to row11in one column withrow6 to row10in another — it creates visual misalignment.
⚠️ Use
spacing=0mmfor tight layouts. Card separation is handled by card styles (left accent stripe, drop shadow), not grid spacing. Grid spacing > 2mm creates visible gaps between rows.
Modern Card Design System (Left Accent Stripe)
Instead of rounded boxes with colored headers, use a left accent stripe design. This is cleaner, more modern, and avoids the "PowerPoint box" look.
Define 4 card styles using the venue's 3-color system:
% Tinted card backgrounds (NOT pure white — adds warmth)
\definecolor{redbg}{HTML}{FFF5F3} % warm pink tint for redcard
\definecolor{bluebg}{HTML}{F0F4FF} % cool blue tint for bluecard
\definecolor{darkbg}{HTML}{FDF6F3} % warm cream tint for darkcard
\definecolor{redtitlebg}{HTML}{FDEAE8} % title bar tint
\definecolor{bluetitlebg}{HTML}{E4ECFF}
\definecolor{darktitlebg}{HTML}{F5E8E2}
\tcbset{
redcard/.style={
enhanced, arc=0pt, boxrule=0pt, colback=redbg,
borderline west={5pt}{0pt}{secondary},
left=16pt, right=14pt, top=4pt, bottom=4pt,
fonttitle=\fontsize{40}{48}\selectfont\bfseries\color{secondary},
coltitle=secondary, colbacktitle=redtitlebg,
toptitle=6pt, bottomtitle=6pt,
titlerule=2pt, titlerule style={secondary!50},
valign=top, drop shadow={opacity=0.18},
},
bluecard/.style={...same pattern with accent color and bluebg...},
darkcard/.style={...same pattern with primary color and darkbg...},
highlightcard/.style={
enhanced, arc=0pt, boxrule=0pt, colback=primary!18!white,
borderline west={6pt}{0pt}{primary},
fonttitle=...\color{white}, colbacktitle=primary,
...
},
}
Card assignment pattern (creates visual rhythm):
- redcard (secondary stripe): Background, Key Idea, Ablation, References, Setup
- bluecard (accent stripe): Result 1, Result 2, Benchmarks, Analysis
- darkcard (primary stripe): Contributions, Method
- highlightcard (primary fill): Key Takeaways / Conclusion
⚠️ Card backgrounds must NOT be pure white (#FFFFFF). Use subtle tints matching the card's color family. Pure white cards on a tinted poster background look disconnected. The tint should be barely visible but adds cohesion.
Figure + Caption Macro
Define a consistent macro for all figures to ensure uniform spacing:
\newcommand{\posterfig}[3]{%
\centering\includegraphics[width=#1\linewidth]{#2}\\[3mm]
{\fontsize{26}{32}\selectfont\color{textgray}\textit{#3}}\vspace{2mm}%
}
% Usage: \posterfig{0.96}{figures/results.png}{Caption text here.}
⚠️ Inconsistent figure-text spacing is the #1 visual flaw in generated posters. The
\posterfigmacro enforces uniform 3mm gap + 2mm bottom padding across all figures.
Content Colorbox Intensity
Inside cards, use \colorbox{color!N} for highlighted blocks. The intensity N must be 18-25% (not 8-12% which is too faint):
% TOO FAINT (invisible on print):
\colorbox{primary!8}{\parbox{...}{...}}
% CORRECT (visible, distinct):
\colorbox{primary!20}{\parbox{0.94\linewidth}{...}}
\colorbox{accent!20}{\parbox{0.94\linewidth}{...}}
\colorbox{secondary!20}{\parbox{0.94\linewidth}{...}}
Similarly, \rowcolor in tables should use 15% intensity: \rowcolor{primary!15}.
Font Size Rules (A0 at article class — NO scale factor)
⚠️ Critical: When using
articleclass (not beamerposter), there is NO automatic scale factor. All font sizes are literal. A poster viewed from 1.5m needs much larger fonts than you think.
| Element | Font size | Leading | Example |
|---|---|---|---|
| Title | 90pt | 108pt | \fontsize{90}{108}\selectfont |
| Author line | 42pt | 50pt | \fontsize{42}{50}\selectfont |
| Section headers | 42pt | 50pt | via fonttitle=\fontsize{42}{50}... |
| Sub-headers | 38pt | 46pt | \subheader{}{} command |
| Body text | 34pt | 44pt | \fontsize{34}{44}\selectfont |
| Stat callout numbers | 72pt | 86pt | \fontsize{72}{86}\selectfont |
| Stat callout labels | 30pt | 36pt | \fontsize{30}{36}\selectfont |
| Equations | 32pt | 40pt | \fontsize{32}{40}\selectfont |
| Table cells | 30pt | 38pt | \fontsize{30}{38}\selectfont |
| Figure captions | 28pt | 34pt | \fontsize{28}{34}\selectfont |
| References | 30pt | 40pt | \fontsize{30}{40}\selectfont |
⚠️ Lesson learned from testing: Body text at 20pt on A0 is unreadable from more than 0.5m. 34pt is the minimum for comfortable reading at poster-session distance.
Content Budget
Total target: 300-500 words (excluding figure captions and stat callout numbers).
⚠️ The #1 content mistake is too much text. A poster is NOT a paper summary — it's a visual guide. Each bullet should be a key phrase (5-8 words), not a sentence. If you find yourself writing full sentences, you're putting too much text.
⚠️ Content density calibration: When in doubt, use LESS text. It's much easier to add a few words than to trim dense paragraphs. Target ~70% fill per card (some breathing room), NOT 100%.
| Box type | Max bullets | Max words | Figure? | Style |
|---|---|---|---|---|
| Background | 3 | 40-60 | No | Short bullets + 1 key insight colorbox |
| Key Idea / Architecture | 0-1 | 20-30 | Yes (hero fig) | Figure dominant + 2 one-liner colorboxes |
| Contributions | 3-4 | 60-80 | No | Numbered, 1 line each |
| Method | 2-3 | 40-60 | No | 2 equation colorboxes + 3 short bullets |
| Results (each) | 2-3 | 30-50 | Yes (figure) | Figure + 2-3 one-line colorboxes |
| Ablation | 3 | 30-40 | No | 3 colorboxes, 2 lines each max |
| Analysis | 3 | 30-50 | Yes (figure) | Figure + 3 one-line colorboxes |
| References | 4-5 | 30-40 | No | Author (year). Short title. Venue |
| Setup | 4-5 | 30-40 | No | 5 one-liner colorboxes |
| Benchmarks | 0 | 20 | No | Table + 1-line caption |
| Key Takeaways | 3 | 30-40 | No | 3 short items + code link |
Bullet point rules:
- Maximum 8 words per bullet when possible
- Use
$\Rightarrow$and$\to$for causal arrows instead of words - Numbers > words: "42% less memory" not "reduces memory usage by 42 percent"
- Colorbox labels: "vs. Depth: 4L CoE ≈ 12L MoE, 42% less memory" (one line)
Recommended 4-Column IMRAD Layout
┌──────────────────────────────────────────────────────────┐
│ TITLE BAR (span=4) │
│ Title (90pt) + Authors (42pt) + Venue + GitHub │
├──────────────────────────────────────────────────────────┤
│ Stat 1 │ Stat 2 │ Stat 3 │ Stat 4 │ STAT BANNER│
├──────────┼──────────┼──────────┼──────────┤ │
│Background│ Dataset │Architectu│ Result 2 │ │
│ & │ & │ re │ + Table │ │
│Motivation│Paradigms │ Overview │ + Stats │ │
│ + │ + Fig │ + Fig │ + Fig │ │
│Contributi│ │──────────│──────────│ │
│ ons │──────────│ Result 1 │ Ablation │ │
│──────────│Computat. │ + Fig │──────────│ │
│References│ Models │ + Table │Conclusion│ │
│ + QR Code│+ Equations│ + Bullets│ + Future │ │
└──────────┴──────────┴──────────┴──────────┘
Workflow
Phase 0: Input Validation & Setup
-
Check prerequisites:
which pdflatex && which latexmkIf LaTeX is NOT installed, try in order:
# Option 1: brew cask (requires sudo — may fail in non-interactive shells) brew install --cask mactex-no-gui # Option 2: BasicTeX (smaller, may still need sudo) brew install --cask basictex # Option 3: User-directory install (NO sudo needed — always works) curl -L https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz | tar xz cd install-tl-* cat > texlive.profile << 'PROF' selected_scheme scheme-basic TEXDIR ~/texlive/YYYY TEXMFLOCAL ~/texlive/texmf-local TEXMFSYSCONFIG ~/texlive/YYYY/texmf-config TEXMFSYSVAR ~/texlive/YYYY/texmf-var TEXMFHOME ~/texmf binary_x86_64-darwin 1 instopt_adjustpath 0 instopt_adjustrepo 1 instopt_write18_restricted 1 tlpdbopt_autobackup 1 tlpdbopt_install_docfiles 0 tlpdbopt_install_srcfiles 0 PROF ./install-tl --profile=texlive.profile export PATH="$HOME/texlive/YYYY/bin/universal-darwin:$PATH"After installation, install required packages:
tlmgr install tcolorbox pgf etoolbox environ trimspaces \ type1cm pdfcol tikzfill latexmk lm enumitem geometry⚠️ Lesson learned:
brew install --cask mactex-no-guioften fails in non-interactive shells because the macOS installer requires sudo password. The user-directory TeX Live install (Option 3) always works without sudo.⚠️ Do NOT install or use
beamerposter. The article class approach does not need it. -
Verify paper exists:
ls $PAPER_DIR/main.tex || ls $PAPER_DIR/main.pdf ls $PAPER_DIR/sections/*.tex ls $PAPER_DIR/figures/ -
Backup existing poster: if
poster/exists, copy toposter-backup-{timestamp}/ -
Create output directory:
mkdir -p poster/figures -
Copy figures to poster directory:
# IMPORTANT: Use cp, NOT ln -sf (symlinks) # pdflatex often fails to resolve symlinks across directories cp paper/figures/selected_figure.pdf poster/figures/⚠️ Never use symlinks for poster figures.
pdflatexcannot reliably follow symlinks across directories. Alwayscpthe actual files. -
Convert PDF figures to PNG for PPTX embedding:
python3 -c "import pdf2image" 2>/dev/null || pip install pdf2image # For each figure: python3 -c " from pdf2image import convert_from_path for name in ['paradigm', 'architecture', 'results', 'hallucination']: imgs = convert_from_path(f'poster/figures/{name}.pdf', dpi=300) imgs[0].save(f'poster/figures/{name}.png', 'PNG') "⚠️ python-pptx CANNOT embed PDF images. You MUST convert to PNG first. This is a hard limitation of the OOXML format. Always generate PNG copies at 300 DPI during setup.
-
Detect CJK: if paper contains Chinese/Japanese/Korean text, set ENGINE to
xelatex -
Check for resume: read
poster/POSTER_STATE.jsonif it exists
Phase 1: Content Extraction
Read each section from paper/sections/*.tex and extract poster-appropriate content:
Extraction rules — a poster shows ~30-40% of the paper's content:
| Paper Section | Poster Extraction | Target Length |
|---|---|---|
| Abstract | Skip — replace with 2-4 big-number stat callout boxes spanning all columns | 0 words (numbers only) |
| Introduction | Motivation: 2-3 bullet points + numbered contribution list (4 items) | 120-160 words |
| Method | 1 hero architecture figure + key equations + 3-5 bullet points | 80-120 words |
| Experiments | Dataset details + main result figures + numeric stat tables + ablation | 150-200 words |
| Conclusion | 3-4 key findings + 2-3 next steps | 60-80 words |
| Related Work | Skip entirely — no space on poster | 0 |
Total target: 400-700 words (excluding figure captions and stat callout numbers).
⚠️ No abstract paragraph on poster. Replace with a stat banner: 3-4 large-number callout boxes showing headline results. This is the single highest-impact change for 60-second comprehension.
Output: poster/POSTER_CONTENT_PLAN.md — structured markdown showing exactly what goes where, with word counts per box.
🚦 Checkpoint:
📋 Poster content plan ready:
- Title: [paper title]
- Venue: [VENUE] ([POSTER_SIZE] [ORIENTATION])
- Layout: [COLUMNS] columns, rows=20
- Figures selected: [N] figures
- Boxes per column: Col1=[N], Col2=[N], Col3=[N], Col4=[N]
- Estimated word count: [N] words
Proceed with this layout? Or adjust content selection?
⛔ STOP HERE and wait for user response.
State: Write POSTER_STATE.json with phase: 1.
Phase 2: Figure Selection & Layout
-
Inventory all figures in
paper/figures/:ls -la paper/figures/*.{pdf,png,jpg,svg} 2>/dev/null -
Rank by poster importance:
- Tier 1 (must include): Architecture/method overview diagram, main results plot
- Tier 2 (include if space): Ablation bar chart, qualitative examples, experimental paradigm
- Tier 3 (skip): Appendix figures, supplementary plots, tables-as-figures
-
Select top 3-5 figures that fit the 4-column layout
-
Copy figures to poster directory (NOT symlinks) + convert PDF→PNG for PPTX
-
Design column layout — 4-column IMRAD:
- Col 1: Background & Motivation + Contributions + References & QR
- Col 2: Dataset & Paradigms (fig) + Computational Models (equations)
- Col 3: Architecture (fig) + Result 1 (fig + stat table)
- Col 4: Result 2 (fig + stat table) + Ablation + Conclusion
Phase 3: Generate Poster LaTeX
Create poster/main.tex using article class + geometry + tcbposter.
Template structure (validated through testing):
\documentclass{article}
\usepackage[paperwidth=1189mm,paperheight=841mm,margin=0mm]{geometry}
\usepackage{tcolorbox}
\tcbuselibrary{poster,skins,fitting}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage{enumitem}
\usepackage[table]{xcolor}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\pagestyle{empty}
% ── Venue Color Theme ──
\definecolor{primary}{HTML}{VENUE_PRIMARY} % deep, saturated
\definecolor{secondary}{HTML}{VENUE_SECONDARY} % medium
\definecolor{accent}{HTML}{VENUE_ACCENT} % contrast
\definecolor{bgposter}{HTML}{VENUE_BG_DEEP} % poster background (NOT white, use tinted)
\definecolor{redbg}{HTML}{FFF5F3} % card backgrounds (tinted, NOT white)
\definecolor{bluebg}{HTML}{F0F4FF}
\definecolor{darkbg}{HTML}{FDF6F3}
\definecolor{redtitlebg}{HTML}{FDEAE8} % card title bar backgrounds
\definecolor{bluetitlebg}{HTML}{E4ECFF}
\definecolor{darktitlebg}{HTML}{F5E8E2}
\definecolor{textdark}{HTML}{111827}
\definecolor{textgray}{HTML}{4B5563}
\definecolor{stathighlight}{HTML}{FEE8E8}
\pagecolor{bgposter}
\color{textdark}
% ── List styling ──
\setlist[itemize]{leftmargin=24pt, itemsep=6pt, parsep=2pt, topsep=2pt,
label={\color{secondary}$\blacktriangleright$}}
\setlist[enumerate]{leftmargin=24pt, itemsep=6pt, parsep=2pt, topsep=2pt,
label={\color{primary}\bfseries\arabic*.}}
% ── Figure+caption macro (ensures uniform spacing) ──
\newcommand{\posterfig}[3]{%
\centering\includegraphics[width=#1\linewidth]{#2}\\[3mm]
{\fontsize{26}{32}\selectfont\color{textgray}\textit{#3}}\vspace{2mm}%
}
Shortened here. Read the whole file on GitHub.
Signals
- GitHub stars
- 1k
- Forks
- 119
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
aris-paper-poster- Source
- github.com/openlair/dr-claw