TikZ Diagrams & Graphical Editor¶
TeXcore integrates an offline, background-compiled TikZ vector graphics renderer and a fully interactive TikZ Graphical Editor. You can write standard LaTeX TikZ scripts directly inside code blocks or edit them visually using a drag-and-drop CAD-like interface.
Architecture & Worker Compilation¶
To prevent Obsidian UI freezes during heavy TeX compilations, TeXcore utilizes a decoupled Web Worker Compiler that operates fully offline:
sequenceDiagram
participant Main as Obsidian Editor
participant Worker as TikZJax Web Worker
participant Disk as Local Storage (WASM)
Main->>Disk: Read & decompress core assets (tex.wasm.gz, core.dump.gz)
Main->>Worker: Spawn thread & send decompressed WebAssembly buffers
Note over Worker: Spin up virtual memory filesystem
Main->>Worker: Post compile command (TikZ code)
Worker->>Worker: Sync compile to DVI format
Worker-->>Main: Return DVI binary output
Main->>Main: Translate DVI to SVG using dvi2html & insert into note Editor Workflows¶
Create a code block in your markdown document and identify it with tikz. You can include packages like pgfplots or libraries in the preamble:
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel=$x$, ylabel=$y$]
\addplot[color=red,mark=x] coordinates {
(2,-3) (3,5) (4,7)
};
\end{axis}
\end{tikzpicture}
\end{document}
- Click the Edit visually button on any rendered TikZ SVG block, or use the Command Palette (Ctrl+P →
Insert display mathor search for the TikZ Editor commands). - A CAD-style modal opens:
- Left Sidebar: Component library featuring core shapes (lines, circles, rectangles) and package modules.
- Center Canvas: Interactive grid with zoom (Ctrl+Scroll Lock), panning (++spacebar+drag++), and snapping (toggle via G or H).
- Right Sidebar: Property editor (adjust color, bold, italics, font size, stroke thickness) and raw TikZ Code synchronization.
- Press Ctrl+Z to undo and Ctrl+Y to redo actions.
- Click the Update block button to compile and insert the code block into your note.
Component Package Manager¶
For complex diagrams (like circuits or flowcharts), the Graphical Editor features a Component Package Manager accessed via the footer button in the Left Sidebar.
Package Installation Flow
Click Manage Packages and search for libraries like circuitikz. Installing a package decompresses and caches its TeX dependency files (.tex/.sty) in memory, dynamically expanding your visual element sidebar with custom shapes (e.g. resistors, logic gates, operational amplifiers) that can be drag-dropped onto the grid canvas.
Diagnostics & Troubleshooting¶
Common TikZ Compilation Hurdles
- Empty Container / Failed rendering: Verify that the
tikzjax-assetsfolder exists inside your plugin installation directory:.obsidian/plugins/TeXcore/tikzjax-assets/. - Package Not Found Error: Double-check spelling inside your block preamble. Only packages included in the asset registry are available offline.
- Canvas Panning Locked: Ensure you hold down the ++spacebar++ while dragging on the canvas container to pan the grid layout.
- Compilation Timed Out: Avoid infinite loops or extremely dense coordinate calculations that exceed WebAssembly heap size allocations.