Kevin89 downloadsTikZ diagrams and full Marp presentation support — Slide Navigator, Speaker Notes, and PPTX export.
Render TikZ/LaTeX diagrams directly in Obsidian notes, and author full Marp slide presentations — complete with Slide Navigator, Speaker Notes panel, and one-click PPTX export with native math objects.
Desktop only. Rendering runs locally via a WASM-based TeX engine — no internet required.
| TikZ diagrams in Marp slides with one-click PPTX export |
![]() |
| PCIe board layout |
![]() |
| Log-log trade-off chart | Wafer die layout | Package floorplan |
![]() |
![]() |
![]() |
More TikZ diagram examples: Decoding the Taalas HC1 — A Quantitative Analysis
tikz fenced code blocks in Reading view.tikz files with %!include; auto-refreshes on save@marp-team/marp-core (no other plugins required)Add a tikz fenced code block in any Markdown file:
```tikz
\begin{document}
\begin{tikzpicture}
\draw[thick, ->] (0,0) -- (2,0) node[right] {$x$};
\draw[thick, ->] (0,0) -- (0,2) node[above] {$y$};
\draw[blue, thick] (0,0) circle (1);
\end{tikzpicture}
\end{document}
```
Switch to Reading view — the diagram renders inline.
Add marp: true to the frontmatter:
---
marp: true
---
# My Presentation
```tikz
\begin{document}
\begin{tikzpicture}
\node[circle, draw] (a) at (0,0) {A};
\node[circle, draw] (b) at (3,0) {B};
\draw[->] (a) -- (b);
\end{tikzpicture}
\end{document}
```
Then open the Marp preview, Slide Navigator, or Speaker Notes via the command palette (Cmd+P / Ctrl+P).
TikZ diagrams work inside Marp slide decks. Add marp: true to your frontmatter and use tikz code blocks as usual.
Marp renders slides at a fixed 1280×720 resolution. TikZ diagrams may appear smaller than in standard Reading view. Use TikZ's scale option to compensate:
```tikz
\begin{document}
\begin{tikzpicture}[scale=2]
\draw (0,0) rectangle (3,2);
\node at (1.5,1) {\Large Hello!};
\end{tikzpicture}
\end{document}
```
A scale=2 factor generally produces a similar visual size to standard Reading view.
Store diagrams in separate .tikz files and reference them with %!include:
```tikz
%!include diagrams/circuit.tikz
```
The included file should contain complete TikZ code:
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) to[battery1, l=$V$] (0,3)
to[R=$R_1$] (3,3)
to[R=$R_2$] (3,0)
-- (0,0);
\end{circuitikz}
\end{document}
Use %!include to share YAML theme configuration and speaker notes across multiple Marp files.
Place %!include filename.yaml inside the frontmatter block:
---
marp: true
%!include _theme.yaml
author: Alice
---
_theme.yaml contains the YAML keys to merge:
theme: default
paginate: true
backgroundColor: white
Add %!notes filename.md anywhere inside a slide body:
# My Slide
%!notes notes/slide1.md
notes/slide1.md can contain any Markdown:
## Key points
- Remember to mention the benchmark results
- Audience question likely: *why not use approach X?*
Both include types resolve relative paths from the Markdown file's directory and auto-refresh when the included file is saved.
Open Slide Navigator via the command palette to see slide thumbnails in a sidebar. Click any thumbnail to move the editor cursor to that slide.
Notes are extracted from HTML comments in your Markdown:
<!-- This appears as a speaker note for the current slide -->
Use Open Speaker Notes to open the panel. Notes render as full Markdown — bold, italic, code, lists, tables, headings, and links.
Prerequisites (for PPTX / PDF export only):
npm install -g @marp-team/marp-cliA ribbon icon (file-down) provides quick access to export. Export pipeline:
marp-cli --pptx-editable to produce a .pptxLaTeX math in slides is converted to native PowerPoint math objects (OMML), not images. Formulas are fully editable in PowerPoint and render crisply at any zoom level.
$$...$$) is centered with automatic vertical space\quad/\qquad spacing\mathbf, \mathit, \hat, \sum, \prod, \int and other accents/nary operators render nativelyOpen the command palette (Cmd+P / Ctrl+P) and search for Marp TikZ:
| Command | Description |
|---|---|
| Open Marp preview | Render the active file as Marp slides |
| Open Slide Navigator | Thumbnail sidebar for the active Marp deck |
| Open Speaker Notes | Notes panel extracted from HTML comments |
| Export Marp slides to PPTX | Export to editable .pptx |
| Export Marp slides to PDF | Export to .pdf |
| Refresh TikZ diagrams | Force re-render all diagrams in the active file |
| Clear TikZ cache | Wipe cache and force fresh rendering |
| Reset TikZJax engine | Reset the WASM TeX engine |
Open Settings → Community Plugins → Marp TikZ:
| Setting | Default | Description |
|---|---|---|
| Invert colors in dark mode | true |
Invert diagram colors when Obsidian uses a dark theme |
| Render timeout (ms) | 60000 |
Max time to wait per diagram; increase for complex diagrams |
| Include notes in PPTX | true |
Embed speaker notes in the PowerPoint notes pane |
| Export format | pptx |
Default export format (pptx or pdf) |
| Package | Purpose |
|---|---|
| chemfig | Chemical structures |
| circuitikz | Electronic circuits |
| pgfplots | Function plots and data charts |
| tikz-cd | Commutative diagrams |
| tikz-3dplot | 3D figures |
| amsmath, amssymb, amsfonts | Mathematical notation |
| array | Array and table structures |
Diagrams not rendering — Switch to Reading view (not Live Preview). Check that the code block uses the tikz language identifier.
Slow rendering — First render compiles WASM; subsequent renders use the cache. Increase the render timeout in settings for complex diagrams.
Preview not updating — Use Refresh TikZ diagrams. If that doesn't help, try Reset TikZJax engine.
CJK text in exported files — CJK font injection is automatic. If Chromium still can't resolve the font, ensure you have internet access during export (the font is fetched from Google Fonts at export time).
PPTX export fails — Confirm marp-cli and LibreOffice are installed and accessible from your PATH.
MIT — see LICENSE for details.