LaTeX Editor
LaTeX documents (.tex, .latex, .ltx) open in a dedicated editor with three tabs, switched from the mode toggle in the toolbar. Every tab edits the same underlying file, so you can move between them at any time.
| Tab | What it shows | Needs a TeX engine? |
|---|---|---|
| Edit | A live WYSIWYG view — headings, paragraphs, lists, abstract, keywords, and math (typeset by KaTeX) look like the finished document. Type prose directly and click any equation to edit it visually. | No — works instantly, nothing installed. |
| Source | The raw .tex in the code editor, with a math-symbol palette for inserting snippets at the cursor. Nothing is hidden or transformed. | No |
| The real, fully compiled document — Crispy runs LaTeX on your Mac and shows the actual typeset PDF: two-column layouts, author blocks, floats, tables, citations, and bibliography. | Yes — a local TeX engine. |
Think of Edit as a fast, dependency-free draft view for prose and math, Source as the full raw code, and PDF as the ground-truth typeset output. The Edit view intentionally renders a subset — math and common structure — and cannot reproduce full page layout (two-column formatting, exact float placement, custom document classes). Use the PDF tab for that.
Smart default
When you open a .tex file, Crispy picks a starting tab and remembers your choice per document:
- TeX engine detected → opens in PDF (the fully compiled document).
- No engine found → opens in Edit (KaTeX), which needs no installation.
Everything is local and offline
The PDF tab compiles with your own local TeX toolchain (pdflatex -synctex=1) on your machine — no account, no cloud, no internet. Crispy runs LaTeX and BibTeX over multiple passes automatically so cross-references and citations resolve instead of showing ?? / [?]. Long or runaway compiles are bounded by a timeout and cancelled when you keep typing, so the app never hangs.
Installing a TeX engine (for the PDF tab)
Crispy doesn’t bundle a TeX engine — it uses whatever you have installed.
Recommended: BasicTeX (~100 MB) — a minimal TeX Live distribution:
brew install --cask basictex
Full distribution: MacTeX (multi-GB) — the complete TeX Live with every package preinstalled:
brew install --cask mactex
Both install into /Library/TeX/texbin, which Crispy probes automatically (along with the standard TeX Live and Homebrew binary locations). No app restart is needed — after installing, open the PDF tab and click Recheck. Crispy was validated against TeX Live 2026 / pdfTeX 1.40.29, but any recent TeX Live release works.
Extra packages, no admin password
BasicTeX is intentionally minimal. If a compile fails with File '…sty' not found, install the missing package per-user, without sudo:
tlmgr init-usertree
tlmgr --usermode install <package> # e.g. enumitem titlesec IEEEtran
This installs into your personal tree at ~/Library/texmf. MacTeX users rarely need this.
Writing in the Edit tab
Click into a paragraph and type; press Return for a new paragraph. The toolbar applies bold, italic, code, headings, and bullet/numbered lists to your selection and writes them back as the matching LaTeX commands (\textbf{…}, \section{…}, \begin{itemize}…). The abstract and keywords are editable too.
Tables, figures, TikZ pictures, the reference list, and custom environments appear as rendered, read-only blocks — preserved exactly; edit them in Source or on the PDF page. The round-trip is reversible: what you write is saved as clean LaTeX, and the preamble, packages, and anything Edit doesn’t render are kept intact (just hidden from the rendered view).
Edit an equation visually
Click any equation (inline or displayed) in Edit. A popup opens with a live preview, a grid of symbol and template buttons (fractions, roots, sums, integrals, Greek letters, matrices), and the raw TeX in a text box. Click Done or click away to commit; Cancel or Esc to discard. An equation with a syntax error shows as red text — click it to fix it, and Crispy keeps rendering the rest of the document.
Edit on the page (PDF tab)
This is the signature feature of the PDF tab. Double-click any text in the rendered document — Crispy uses SyncTeX to map that spot back to the exact source, and a small inline editor opens right where you clicked, prefilled with that block of source and labeled with the lines you’re editing. The matching region on the page is highlighted. Make your change and press Save (or ⌘↩); the document is rewritten and the page recompiles. Press Esc or Cancel to discard.
The page also recompiles automatically a moment after you stop typing. Your current page and scroll position are preserved across re-renders, so the view doesn’t jump.
Comment on the PDF
Select text in the PDF tab and a Comment button appears above the selection. Comments added on the PDF live in the same store as comments added in the Source or Edit views, so they show up consistently across tabs. See File Comments.
Non-destructive errors
If an edit doesn’t compile, Crispy keeps showing your last good PDF and drops a small dismissible banner — “Compilation failed — showing the last successful render.” Switch to Source to fix the error, and the page recompiles. Only when there’s no previous PDF to fall back to does Crispy show the full error log.
Math in Markdown
Crispy also renders inline math in Markdown: write $inline$ or a $$displayed$$ block, and it typesets via KaTeX in the markdown rich view, saving back to the same $…$ / $$…$$ you wrote.
Keyboard shortcuts
| Action | Shortcut |
|---|---|
| Commit the equation popup / on-page edit | ⌘↩ (or Save / click away) |
| Cancel the equation popup / on-page edit | Esc |
| New paragraph (Edit tab) | ↩ |
| Open the on-page editor (PDF tab) | Double-click the text |
Standard editor shortcuts (undo/redo, find/replace, selection) work as usual in the Source tab.
💡 Tip: No TeX engine yet? The PDF tab shows an actionable screen with the brew install --cask basictex command, a Copy button, and a Recheck button that brings up the live PDF with no app restart. Meanwhile the Edit and Source tabs work without anything installed.
Known limitations
- The PDF tab needs a local TeX engine (BasicTeX or MacTeX) — Crispy doesn’t bundle one. Edit and Source work without it.
- The Edit tab renders math and common structure, not full document-class layout (two-column, exact float placement, custom classes). Use the PDF tab for true layout.
- The PDF tab runs a real LaTeX engine on your machine — only compile
.texfiles you trust. - Single-user and offline by design — no collaboration or cloud rendering.
- No command-line interface for LaTeX documents yet.