Working in Citet
Compilation
Citet captures a project revision and compiles it to PDF in a separate LaTeX worker. The result records which source revision it used, so the workspace can show when the PDF is behind your current edits.
Compilers
Choose a compiler in Project settings → Compilation:
- →pdfLaTeX
- the default TeX Live engine, with texe managing repeated passes and the required BibTeX or biber step.
- →XeLaTeX
- a TeX Live engine for Unicode text and OpenType fonts, including documents using fontspec. Uses the same texe bibliography pipeline.
- →LuaLaTeX
- a TeX Live engine for Unicode text, OpenType fonts, and Lua scripting. Uses texe to manage repeated passes and bibliography tools.
- →Shipout
- a native engine that produces PDF and, for Beamer projects, SVG slides with reveal steps, animations, and media. Motion and media are authored in LaTeX. Unsupported rendering operations appear as compile errors.
For documents using biblatex with biber, choose a TeX Live compiler. Font availability depends on the installed worker image.
Presentations
Citet detects \\documentclass{beamer} in your main file and opens a workspace with files, source, and slides. You can also choose the Presentation starter when creating a project. Your saved layout takes precedence over the automatic layout.
Compile, then click Present to start fullscreen slides. With a second display, Citet automatically puts the slides on the presentation screen and opens Presenter view with current and next previews, a timer, and speaker notes on your other screen. The browser may ask for display access the first time. The presentation shows only slides. Right-click to open options, including Presenter view, Display, fullscreen, navigation, and ending the presentation. Use Displayto change or swap screens. The same menu is available in Presenter view. Press Esc to end the presentation and return to your project. Use the arrow keys or Space to advance, Home and End to jump, and B to blank or resume the presentation screen. The presenter keeps the build you opened while you continue editing. PDF engines show individual PDF pages; Shipout groups frames and reveal steps.
With Shipout, add \note{Your speaker notes} inside a Beamer frame. Notes are typeset from the same source revision, including math and overlay-specific notes, and appear only in the console. They are excluded from the audience slides and exported PDF. You can also write private reminders in the console; these stay on your device for that compiled build.
With Shipout, load shipout-motion and author animations such as\\FlyIn<2->[id=claim,from=left,duration=650]{Your claim}in the source. Load shipout-media for local media, for example\\ShipoutVideo[id=clip,width=10cm,height=5.625cm]{assets/clip.webm}. Upload media to your project. Playback follows browser autoplay rules; a Play button appears when autoplay is blocked.
Triggering a compile
- →Toolbar
- click the compile button in the workspace header.
- →Keyboard
- press
⌘S/Ctrl+Sor⌘↵/Ctrl+Enter. - →Command palette
- open
⌘K/Ctrl+Kand select Compile project.
Compile panel
- →Diagnostics
- errors and warnings from the latest compile. Click a diagnostic with a source location to navigate to it.
- →Logs
- captured compiler output and the engine log.
- →Summary
- compile status, source revision, compiler, and timing by phase. TeX Live engine and bibliography passes are grouped into the texe build phase.
Commands stop when they exceed the configured execution time or output limit. The report identifies those failures; logs are bounded and can be truncated.
Builds and caching
Each build uses a temporary directory that is removed afterwards. Intermediate files do not persist between builds. Citet can reuse completed artifacts when the source, compiler, and toolchain version match a previous successful build. Switching compilers changes the cache identity.
▶Worker configuration
TeX Live is pinned by image digest. Operators should change LATEX_TOOLCHAIN_VERSION when upgrading engines, images, or bundles.
LATEX_COMMAND_TIMEOUT_MS defaults to 120000 (two minutes per command). LATEX_MAX_OUTPUT_BYTES defaults to 1048576 (1 MiB combined stdout/stderr per command). Engine log reads are also bounded.
Worker isolation
The Compose LaTeX worker runs as a non-root user with a read-only container filesystem, temporary writable storage, CPU and memory limits, and an internal network. Compiler subprocesses receive a restricted environment without application or storage credentials.
▶Compiler restrictions
Shell escape is disabled. TeX Live usesopenin_any=p and openout_any=p. texe uses the Paper’s texe.lock for the package closure and runtime identity. Packages are verified before the compile runs offline with Landlock and seccomp.
Jobs use distinct work directories in the same worker container. They do not each receive a separate container or VM. Container resource settings apply to the worker as a whole. See self-hostingfor deployment configuration.