К основному содержанию
скилл CX Codex

pdf-generation — скилл для Claude Code: PDF из markdown

Собирает PDF из markdown через Pandoc и шаблон Eisvogel: титульная страница, оглавление, темы по цветам. Для отчётов, white paper и документации.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add glebis/claude-skills --skill pdf-generation -a claude-code
Открыть на GitHub

Что делает pdf-generation

Скилл превращает markdown-файл в готовый PDF командой Pandoc с движком xelatex. Оглавление собирается до второго уровня, поля и кегль задаются параметрами, а титульная страница берёт цвета из YAML-блока в начале файла. Для white paper это синий 1e3a8a, для маркетинга зелёный 059669, для исследований фиолетовый 7c3aed, для технической документации серый 374151.

Русский текст набирается шрифтом EB Garamond — его подставляют через -V mainfont. Есть два макета: A4 с полями 2.5 см и кеглем 11pt для печати, и мобильный 6x9 дюймов с полями 0.5in и кеглем 10pt для чтения с телефона. В контексте Telegram-бота по умолчанию берётся мобильный вариант, если пользователь не попросил печатный.

Отдельный скрипт scripts/fix_markdown.py чинит разметку перед сборкой: списки после двоеточий и заголовков, отступы вложенных пунктов. Без пустой строки после двоеточия список склеивается в одну строку текста, поэтому этот шаг лучше не пропускать. Для работы нужны pandoc и LaTeX: brew install pandoc и brew install --cask mactex.

Какие задачи решает

  • собрать PDF из markdown с оглавлением
  • сделать титульную страницу с цветом под тему документа
  • набрать русский текст шрифтом EB Garamond
  • починить списки после двоеточий перед сборкой
  • отдать документ в мобильном формате 6x9 для чтения с телефона

Примеры запросов агенту

  • собери PDF из report.md с оглавлением до второго уровня
  • сделай мобильную версию документа для отправки в Telegram
  • прогони fix_markdown.py по doc.md и собери PDF с EB Garamond

Как установить pdf-generation

1Через Skills CLI (Vercel)

npx skills add glebis/claude-skills --skill pdf-generation -a claude-code

2Вручную: положить файлы

~/.claude/skills/pdf-generation/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/pdf-generation/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о pdf-generation

Как установить pdf-generation в Claude?

Выполните npx skills add glebis/claude-skills --skill pdf-generation -a claude-code. Скилл встанет в ~/.claude/skills/pdf-generation/SKILL.md.

Что делает pdf-generation?

Собирает PDF из markdown через Pandoc с шаблоном Eisvogel: оглавление, титульная страница с цветом темы, поддержка русского текста. Макет выбирается под печать или под телефон.

Что нужно поставить заранее?

Pandoc и LaTeX. В инструкции по устранению неполадок указаны brew install pandoc и brew install --cask mactex.

Исходный текст

SKILL.md · MIT
---
name: pdf-generation
description: Professional PDF generation from markdown using Pandoc with Eisvogel template and EB Garamond fonts. Use when converting markdown to PDF, creating white papers, research documents, marketing materials, or technical documentation. Supports both English and Russian documents with professional typography and color-coded themes. Mobile-optimized layout (6x9) by default for Telegram bot context, desktop/print layout (A4) for other contexts.
---

# PDF Generation

## Overview

Generate professional PDFs from markdown files using Pandoc with Eisvogel template styling. Supports English and Russian documents with customizable themes, table of contents, and professional typography including EB Garamond font for Russian text.

## Quick Start

Basic commands:

```bash
# Desktop/Print PDF (A4 format)
pandoc doc.md -o doc.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:margin=2.5cm -V fontsize=11pt -V documentclass=article

# Mobile-friendly PDF (6x9 phone screen optimized)
pandoc doc.md -o doc-mobile.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:paperwidth=6in -V geometry:paperheight=9in -V geometry:margin=0.5in -V fontsize=10pt -V linestretch=1.2

# Russian PDF with EB Garamond
pandoc doc-ru.md -o doc.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:margin=2.5cm -V fontsize=11pt -V documentclass=article -V mainfont="EB Garamond"

# Russian Mobile PDF
pandoc doc-ru.md -o doc-mobile.pdf --pdf-engine=xelatex --toc --toc-depth=2 -V geometry:paperwidth=6in -V geometry:paperheight=9in -V geometry:margin=0.5in -V fontsize=10pt -V linestretch=1.2 -V mainfont="EB Garamond"
```

## Document Theme Colors

- **White Papers** - Blue (1e3a8a)
- **Marketing** - Green (059669)
- **Research** - Purple (7c3aed)
- **Technical** - Gray (374151)

## YAML Frontmatter Example

```yaml
---
title: "Document Title"
subtitle: "Subtitle"
author: "Author"
date: "2025-11-18"
titlepage: true
titlepage-color: "1e3a8a"
titlepage-text-color: "ffffff"
book: true
---
```

See references/frontmatter_templates.md for complete templates.


## Markdown Formatting Best Practices

For optimal PDF rendering, ensure:

1. **Blank lines before lists** - Required for proper list rendering
2. **Blank lines after headings** - Improves spacing
3. **Nested list indentation** - Use 3 spaces for sub-items

### Common Claude Code Pattern

Lists after colons need blank lines:

```markdown
Your data spans 9 years with complete tracking:

- Item 1
- Item 2
```

Without blank line after colon, renders as inline text.

### Automatic Fix

Use preprocessing script:

```bash
scripts/fix_markdown.py input.md output.md
```

Automatically detects and fixes:
- Lists after colons (Claude Code format)
- Lists after headings
- Nested list spacing

## Layout Options

### Desktop/Print Layout (A4)
- Paper: 210mm x 297mm (A4)
- Margins: 2.5cm
- Font size: 11pt
- Best for: Printing, reading on large screens, archival

### Mobile Layout (Phone-optimized)
- Paper: 6in x 9in (phone aspect ratio)
- Margins: 0.5in (minimal for screen space)
- Font size: 10pt with 1.2 line spacing
- Best for: Phone/tablet reading, Telegram/messaging apps

**Default for Telegram Bot**: Use mobile layout for all PDFs sent via Telegram unless user explicitly requests print/desktop version.

## Generation Workflows

### Workflow 1: Simple PDF

1. Check context (Telegram = mobile, otherwise desktop)
2. Check if Russian (use EB Garamond if yes)
3. Run appropriate pandoc command
4. Verify output

### Workflow 2: Professional Title Page

1. Add YAML frontmatter with theme color
2. Include metadata (title, author, date)
3. Choose layout (mobile vs desktop)
4. Generate with xelatex

### Workflow 3: Using Script

```bash
scripts/generate_pdf.py doc.md -t white-paper
scripts/generate_pdf.py doc.md -t marketing --russian
scripts/generate_pdf.py doc.md --mobile  # Mobile layout
```

## Resources

- **scripts/generate_pdf.py** - Automated generation
- **references/frontmatter_templates.md** - YAML templates
- **references/pandoc_reference.md** - Command reference

## Troubleshooting

Install pandoc: `brew install pandoc`
Install LaTeX: `brew install --cask mactex`
## Mobile-Friendly PDFs

For phone and tablet reading, use the mobile layout option:

```bash
# Using script (recommended)
scripts/generate_pdf.py doc.md --mobile

# Direct pandoc command
pandoc doc.md -o doc-mobile.pdf \
  --pdf-engine=xelatex \
  --toc --toc-depth=2 \
  -V geometry:paperwidth=6in \
  -V geometry:paperheight=9in \
  -V geometry:margin=0.5in \
  -V fontsize=10pt \
  -V linestretch=1.2 \
  -V colorlinks=true \
  -V linkcolor=blue \
  -V urlcolor=blue
```

**Mobile layout features**:
- 6x9 inch page size (optimal for mobile screens)
- 10pt font (readable on smaller screens)
- 0.5in margins (maximizes content area)
- 1.2 line spacing (improved readability)
- Auto-generated `-mobile.pdf` filename suffix

**When to use mobile layout**:
- Sharing research via Telegram/messaging apps
- Reading on phones or tablets
- Creating portable reference documents
- Quick consumption on the go

**Default context**: Mobile layout is used by default when generating PDFs through the Telegram bot for optimal mobile reading experience.

© glebis · MIT · glebis/claude-skills

Похожие скиллы

Всё по теме «Тексты и документация» →
kimi-pdf thvroyal Скилл делает PDF из HTML через Paged.js, компилирует LaTeX и разбирает готовые файлы: извлечь текст, склеить, разделить, заполнить формы. CX Codex +1 419установок pandoc plinde Скилл учит агента гонять документы между Markdown, DOCX, PDF, HTML и LaTeX через pandoc. Пригодится, когда нужно отдать текст в Word или собрать PDF. CX Codex +1 484установок latex-document-skill ndpvt-web Скилл верстает резюме, научные статьи, презентации и формы в LaTeX, собирает их в PDF через скрипты и отдаёт превью страниц в PNG. CX Codex +1 561установок pdf shareAI-lab Скилл учит агента извлекать текст из PDF, собирать документы из Markdown и склеивать файлы. Пригодится, когда в задаче всплывает PDF. CX Codex +1 ★ 79 238звёзд репо geo-report-pdf geo-seo-claude Превращает markdown-отчёт GEO-аудита в PDF с обложкой, цветными таблицами оценок и дорожной картой на 90 дней. Использует pandoc и Chrome headless. CX Codex +1 833установок doc-to-markdown daymade Превращает DOCX, PDF, PPTX и сохранённый HTML в аккуратный Markdown и сам чинит типовые дефекты конвертации. Пригодится, когда нужно вытащить текст из документа без ручной правки. CX Codex +1 872установок

Из того же набора8

google-image-search Ищет и скачивает иллюстрации через Google Custom Search API с отбором через LLM и вставкой в заметки Obsidian. CX Codex +1 643установок health-data Запрашивает локальную базу SQLite с экспортом Apple Health, выдаёт показатели пульса, сна и тренировок в Markdown, JSON или FHIR R4. CX Codex +1 393установок firecrawl-research Скилл находит темы в markdown-заметках, выкачивает материалы через FireCrawl API и собирает структурированные отчёты. Пригодится для научной работы и подготовки библиографии. CX Codex +1 379установок deep-research Запускает глубокое исследование темы через OpenAI Deep Research API: уточняет запрос вопросами, сохраняет параметры и выдаёт отчёт со ссылками. CX Codex +1 324установок presentation-generator Собирает презентации в стиле необрутализма с фирменными цветами Agency: интерактивный HTML, PNG-слайды и PDF. CX Codex +1 320установок decision-toolkit Скилл собирает интерактивные инструменты для сложных решений: пошаговые мастера, чек-листы когнитивных искажений, сценарии и дашборды. CX Codex +1 317установок elevenlabs-tts Превращает текст в аудиофайл через ElevenLabs API: выбираете голос из пресетов, задаёте стабильность и similarity boost. CX Codex +1 305установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой