zlatex is a desktop LaTeX editor — a Tauri v2 app behind the shared cyberpunk HUD, over the embeddable zlatex-core typesetter. Type a document on the left, watch it set into pages on the right, and export it as a multi-page PDF that carries its own source. There is no TeX distribution behind the curtain: the tokenizer, both grammars, TeX's line-breaking algorithm, the page builder and the math layout are all compiled into the app, and so are the fonts.
Live typesetting
Every keystroke re-typesets through the engine and the preview repaints from a render tree — not a rasterized image, and not a round trip through an external process. A document comes back as pages, already broken.
Preview ↔ source
Every glyph run carries the byte span of the source that produced it. Click a glyph to select its source; move the caret to highlight the ink it produces.
Export that stays editable
A document exports as a multi-page PDF, a formula as one tight box; SVG and PNG are drawn from glyph outlines, so no viewer needs the fonts. The PDF carries its own LaTeX source, so dropping the file back in reopens editable source.
Shared HUD
zgui-core widgets throughout: the ⌘K palette, the fzf filter with matched-character highlighting, the embedded terminal, the file browser, and the stryke hooks editor — the same Monaco bundle, in LaTeX mode.
Books, not just files
\input and \include resolve against the open document, so a book split across chapter files previews as one book. The § outline panel lists its sectioning, fuzzy-filtered; clicking an entry moves the caret, which moves the preview.
TeX Live packages
A package manager on the shape of TeX Live Utility, over the real databases — the local texlive.tlpdb joined against the mirror's. Install pulls the .tar.xz into the app's own texmf: no tlmgr, no perl, no root. This document narrows the table to what the open .tex asks for.
In the window
A toolbar (display / inline · size · color · default / vim / emacs · zoom · Σ symbol palettes · § outline · ⟲ recent documents · PKG packages · library · save · SVG · PNG · PDF · copy · page view), a Monaco editor pane in LaTeX mode with snippet completion — plus \ref completion from the file's own \labels, \cite completion from its \bibitem keys, and its sectioning exposed as document symbols — a diagnostics strip that underlines what did not parse, and the preview pane: paginated sheets for a document, a single box for a bare formula.
Under the pages runs the zpdf viewer bar, ported rather than reinvented — thumbnail rail, file name, zoom strip, 1 / 2 / 4-up columns, page box, export and print — with a status line beneath it carrying a live word and character count of the prose alone. Open Recent (⇧⌘O) is zpdf's picker over the host's own recents store, and the accelerator is taken back from Monaco's Go to Symbol so it fires with the editor focused. The settings panel is the shell's single ⚙ panel; the native macOS menu bar carries the same actions the palette does.
Build
pnpm install # in app/ — pulls the pinned zgui-core + the Tauri CLI pnpm dev # tauri dev pnpm build # tauri build cargo test --manifest-path crates/zlatex-core/Cargo.toml
Where it goes next
See the engineering report for the app's structure and the shared modules it mounts, the engine docs for the typesetting pipeline, and the MenkeTechnologiesMeta umbrella for the wider desktop stack.