Printing Press

Open a LaTeX or Markdown source file. Press compiles and displays it.

Source on GitHub

macOS · built with Rust · AGPL-3.0

A llama surrounded by potion bottles labelled with variations of final.pdf

Compilation

Press handles the build

Open a source file and Press runs the compiler, stores the result in its cache, and updates the view after each save. It does not add generated files to your project.

Before

your editor
latexmk -pvc
paper.pdf
a PDF viewer

The usual setup needs a compiler process and a generated PDF between the editor and viewer.


With Press

your editor
Press
watch compile view

Press watches the source, compiles it, and displays the result from its own cache.

Reload after every save

Press rebuilds and updates the page in place, with your scroll position intact. You do not need a separate watcher or reload command.

Use any editor

Press watches files rather than editors, so Vim, VS Code, and Emacs need no integration. Install press.nvim if you want a :Press command in Neovim.


Version history

Keep snapshots without renaming PDFs

Press stores titled snapshots of the source in its own data directory. Your project folder stays unchanged.

thesis
Working copy built
Before cutting §3 2d
survey still in, figures unchanged
Sent to Ana 3w
First full draft 2mo
Working copy 3/24 Snapshot Editor Projects

Save a snapshot with ⌘K

Name the current source state, then open it later in the same viewer. Press compiles the snapshot when needed.

Jump from the page to its source

⌘click a page to see the source file, line number, and text for that spot. This also works when the snapshot's source is no longer on disk.

Git still handles version control

Press has no branches, merges, or remotes. It stores a flat list of snapshots and deduplicates shared files, such as figures used by several versions.

Install

Build and install Press from source:

git clone https://github.com/antonio-leitao/printing-press
cd printing-press
npm install
npm run install:app

That puts Press.app in /Applications. Run it again to upgrade. Add -- --link once for a press command in your terminal.

Requires macOS, Node.js, Rust, and a TeX distribution with latexmk. Markdown documents also require pandoc.