Md To PDF Academic
wentorai/research-plugins
Convert Markdown to publication-quality PDF with LaTeX math rendering
Convert Markdown to styled PDFs with Mermaid diagrams, LaTeX/KaTeX math, tables, and code highlighting.
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Mathews-Tom/armory md-to-pdf --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/md-to-pdf .claude/skills/md-to-pdf && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .claude/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdfType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Mathews-Tom/armory md-to-pdf --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/md-to-pdf .agents/skills/md-to-pdf && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .agents/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Mathews-Tom/armory md-to-pdf --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/md-to-pdf .cursor/skills/md-to-pdf && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .cursor/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Mathews-Tom/armory.git --path skills/md-to-pdf--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Mathews-Tom/armory md-to-pdf --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/md-to-pdf .gemini/skills/md-to-pdf && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .gemini/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Mathews-Tom/armory md-to-pdfInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/md-to-pdf .github/skills/md-to-pdf && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .github/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mathews-Tom/armory --skill md-to-pdf -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Mathews-Tom/armory md-to-pdf --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/md-to-pdf .opencode/skills/md-to-pdf && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "md-to-pdf" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/md-to-pdf into .opencode/skills/md-to-pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "md-to-pdf", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
md-to-pdfConvert Markdown to styled PDFs with Mermaid diagrams, LaTeX/KaTeX math, tables, and code highlighting.
Md To PDF is an agent skill from Mathews-Tom/armory. Convert Markdown to styled PDFs with Mermaid diagrams, LaTeX/KaTeX math, tables, and code highlighting. Triggers on: "convert markdown to pdf", "make a pdf from this md", "export markdown as pdf", "pdf from markdown with equations".
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts (for example `README.md`, `evals/cases.yaml` and `scripts/katex_render.js`).
It sits in Documents & Office, covering PDF, LaTeX and Markdown. It works with LaTeX and Pandoc. The repository describes itself as: Curated, production-grade skills for AI coding agents. Battle-tested workflows for developers who use AI seriously. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4594fb7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (JavaScript, Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
python3bashnpmplaywrightaptpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Md To PDF loads about 2.4k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 579 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Mathews-Tom/armory at commit 4594fb7, republished under its MIT licence (© Mathews-Tom). 579 words, ~2,449 tokens.
.claude/skills/md-to-pdf/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Converts Markdown files to professionally styled PDFs with full rendering of Mermaid diagrams, LaTeX math (via KaTeX), tables, syntax-highlighted code blocks, and all standard Markdown features.
Input .md file
│
├─ Step 1: Extract ```mermaid blocks → render to SVG via mmdc (Mermaid CLI + Puppeteer)
│ Replace mermaid code blocks with inline <svg> in the markdown source
│
├─ Step 2: pandoc converts modified markdown → standalone HTML5
│ (--katex flag preserves raw LaTeX in <span class="math ..."> elements)
│
├─ Step 3: Node.js KaTeX server-side rendering
│ Replaces math spans with fully rendered KaTeX HTML (no client-side JS needed)
│
├─ Step 4: CSS injection
│ KaTeX stylesheet (with local font paths) + professional document styles + optional custom CSS
│
└─ Step 5: Playwright (headless Chromium) prints final HTML → PDF
↓
Output .pdf file| Feature | Rendering Engine | Notes |
|---|---|---|
| Mermaid diagrams | mmdc (mermaid-cli) via Puppeteer | flowchart, sequence, class, state, ER, gantt, pie, git, mindmap, etc. |
| LaTeX math (inline) | KaTeX server-side | $E=mc^2$ syntax |
| LaTeX math (display) | KaTeX server-side | $$\int f(x) dx$$ syntax |
| Tables | pandoc + CSS | Full GFM pipe-table support with professional styling |
| Code blocks | pandoc + CSS | Syntax highlighting via pandoc, monospace styling |
| Images | pandoc + Playwright | Local file:// and remote https:// images |
| Links | pandoc | Rendered as styled text |
| Lists / blockquotes | pandoc | Ordered, unordered, nested, blockquotes |
| YAML frontmatter | pandoc | title used as PDF title metadata |
| Footnotes | pandoc + CSS | [^1] syntax, rendered at page bottom |
| Definition lists | pandoc + CSS | Term / definition pairs |
| Strikethrough | pandoc | ~~deleted~~ syntax |
| Horizontal rules | pandoc + CSS | --- rendered as styled separators |
Run the setup checker before first use:
bash <SKILL_DIR>/scripts/setup.shThis validates that all required tools are present and working. The standard Claude computer-use environment has everything pre-installed. For other environments, the required stack is:
| Dependency | Purpose | Install |
|---|---|---|
pandoc | Markdown → HTML | apt install pandoc |
mmdc (@mermaid-js/mermaid-cli) | Mermaid → SVG | npm install -g @mermaid-js/mermaid-cli |
katex (npm) | LaTeX → HTML | npm install -g katex |
playwright (Python) | HTML → PDF | pip install playwright && playwright install chromium |
| Chrome/Chromium | Browser engine | Installed by Playwright or Puppeteer |
python3 <SKILL_DIR>/scripts/md_to_pdf.py <input.md> <output.pdf>python3 <SKILL_DIR>/scripts/md_to_pdf.py <input.md> <output.pdf> [OPTIONS]| Parameter | Default | Description |
|---|---|---|
input | (required) | Path to input Markdown file |
output | (required) | Path to output PDF file |
--format | A4 | Page size: A4, Letter, Legal, A3 |
--margin | 0.75in | Margins — single value (uniform) or top,right,bottom,left |
--no-mermaid | false | Skip Mermaid rendering (keeps raw code blocks) |
--no-math | false | Skip KaTeX math rendering |
--css | (none) | Path to additional custom CSS file to layer on top |
--landscape | false | Landscape orientation |
--header-footer | false | Show page numbers in footer (page / total) |
# Standard A4 conversion
python3 scripts/md_to_pdf.py report.md report.pdf
# US Letter, landscape, with page numbers
python3 scripts/md_to_pdf.py report.md report.pdf --format Letter --landscape --header-footer
# Custom margins and extra CSS
python3 scripts/md_to_pdf.py report.md report.pdf --margin "1in,0.75in,1in,0.75in" --css brand.css
# Plain mode (skip Mermaid + math for speed)
python3 scripts/md_to_pdf.py report.md report.pdf --no-mermaid --no-mathWhen a user asks to convert Markdown to PDF:
bash <SKILL_DIR>/scripts/setup.shpython3 <SKILL_DIR>/scripts/md_to_pdf.py /path/to/input.md /path/to/output.pdf [OPTIONS]| Symptom | Likely Cause | Fix |
|---|---|---|
| "mmdc FAILED" in Mermaid step | Invalid Mermaid syntax | Check diagram syntax; mmdc stderr has the parse error |
| Raw LaTeX visible in PDF | KaTeX couldn't parse expression | Check LaTeX syntax; KaTeX falls back gracefully |
| "No Chrome binary found" | Puppeteer/Playwright Chromium missing | Run playwright install chromium |
| Blank/missing diagrams | SVG too large or complex | Try --no-mermaid and render diagrams separately |
Pass --css path/to/custom.css to inject styles after the defaults. Your rules take precedence.
Example — dark theme override:
body {
background: #1a1a2e;
color: #e0e0e0;
}
h1,
h2,
h3 {
color: #e0e0e0;
border-color: #444;
}
table th {
background: #2a2a4a;
}
pre {
background: #0d0d1a;
border-color: #333;
}Set the MERMAID_CONFIG environment variable to a JSON config file:
MERMAID_CONFIG=/path/to/.mermaidrc python3 scripts/md_to_pdf.py input.md output.pdfExample .mermaidrc:
{
"theme": "neutral",
"themeVariables": {
"primaryColor": "#e1f5fe",
"lineColor": "#333"
}
}@mermaid-js/mermaid-cli install. Offline environments must use --no-mermaid and render diagrams separately.page-break-before: always or break-before: page) or manual <div style="page-break-before: always"> in the source. Pandoc does not infer page breaks from heading structure.md-to-pdf/
├── SKILL.md # This file — skill documentation
├── LICENSE.txt # MIT license
├── README.md # Distribution / standalone usage docs
├── scripts/
│ ├── md_to_pdf.py # Main conversion pipeline (Python)
│ ├── katex_render.js # Server-side KaTeX math renderer (Node.js)
│ └── setup.sh # Dependency checker / installer
└── tests/
└── test_document.md # Comprehensive test covering all features© Mathews-Tom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts) in skills/md-to-pdf of Mathews-Tom/armory.
Open the folder on GitHubat commit 4594fb7
Md To PDF next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Md To PDF this skillMathews-Tom/armory | 329 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Md To PDF Academicwentorai/research-plugins | 298 | 1 repos | ~1.8k | Automated safety check: Notes | MIT | |
| MineruNebutra/MinerU-Skill | 123 | — | ~504 | Automated safety check: Pass | MIT | |
| Lecture To Mdysyecust/lecture-to-notes | 273 | — | ~3.9k | Automated safety check: Pass | Custom licence | |
| Pandic OfficeTeam-Commonly/commonly | 1.4k | — | ~642 | Automated safety check: Pass | Apache-2.0 | |
| Chinese Copyright Applicationokooo5km/Skills4U | 183 | — | ~2.8k | Automated safety check: Notes | MIT |
wentorai/research-plugins
Convert Markdown to publication-quality PDF with LaTeX math rendering
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents.
ysyecust/lecture-to-notes
把课堂视频(本地或 B 站/YouTube)、文字稿、课件三者(任意组合)整理成一份详细的中文 Markdown 课堂笔记,输出按课程标题命名的 {titlename}.md(首行为 文档标题)+ 相对路径图片。Markdown 工作流,与上游 lecture-to-notes 的 LaTeX/PDF 输出并行存在;上游 skill 完全不动。触发词:markdown 笔记、md 笔记、视频转…
Team-Commonly/commonly
Convert Markdown to PDF (or DOCX/EPUB/HTML) using the pandoc CLI.
okooo5km/Skills4U
中国软件著作权申请材料生成工具。申请表直接输出 Markdown 提交,源程序/用户手册/设计说明书三份生成 LaTeX 并编译为 PDF。自动分析项目代码,生成四份材料(前后各30页共60页源程序、含页眉页脚的用户手册和设计说明书、Markdown…
benchflow-ai/skillsbench
Convert PDF documents to Markdown using markersingle. An agent skill from benchflow-ai/skillsbench.
Mathews-Tom/armory
Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports.
Mathews-Tom/armory
Turn concepts into static HTML visuals exported as PNG or SVG files via HTML/CSS/SVG.
Mathews-Tom/armory
A skill your agent uses when analyzing an existing video URL or local recording: "watch this video", "analyze youtube video", "summarize this video", "youtube transcript", "find this moment", "what…
Mathews-Tom/armory
Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.
Mathews-Tom/armory
Turn concepts into animated explainer videos using Manim (Python) with MP4/GIF output, audio overlay, multi-scene composition.
Mathews-Tom/armory
Maps the unresolved architecture, policy, and scope decisions that must be answered before planning can start: one durable decision ticket per question on the issue tracker, typed and blocker-linked…
Categories
Convert Markdown to styled PDFs with Mermaid diagrams, LaTeX/KaTeX math, tables, and code highlighting. Md To PDF is an agent skill from Mathews-Tom/armory. Convert Markdown to styled PDFs with Mermaid diagrams, LaTeX/KaTeX math, tables, and code highlighting.
Md To PDF fits situations like: : convert markdown to pdf; make a pdf from this md; export markdown as pdf; pdf from markdown with equations.
Run `npx skills add Mathews-Tom/armory --skill md-to-pdf -a claude-code`. Or copy the skill folder (skills/md-to-pdf in Mathews-Tom/armory) into .claude/skills/md-to-pdf in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Mathews-Tom/armory --skill md-to-pdf -a codex`. Or copy the skill folder (skills/md-to-pdf in Mathews-Tom/armory) into .agents/skills/md-to-pdf in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mathews-Tom/armory --skill md-to-pdf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/md-to-pdf, .gemini/skills/md-to-pdf, .github/skills/md-to-pdf and .opencode/skills/md-to-pdf in your project.
Going by SKILL.md and its folder, Md To PDF needs JavaScript, Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3, bash, npm, playwright, apt and pip). Our summary lists: Python 3; Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use npm and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Md To PDF is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Md To PDF: Md To PDF Academic (wentorai/research-plugins, 298 stars), Mineru (Nebutra/MinerU-Skill, 123 stars), Lecture To Md (ysyecust/lecture-to-notes, 273 stars) and Pandic Office (Team-Commonly/commonly, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Mathews-Tom (a GitHub user) maintains it in Mathews-Tom/armory, which has 329 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 6, 2026.
Source: Mathews-Tom/armory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.