pdf-generation
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.
What this skill does
# 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.
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.