百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
T

texpresso

> 编程语言
开源

TeXpresso: 实时渲染和错误报告,适用于 LaTeX

755 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

TeXpresso: 实时渲染和错误报告,适用于 LaTeX

[!Note] TeXpresso is still in an early development phase. Changes and bug fixes are happening frequently, check the CHANGELOG.md.

About

TeXpresso provides a "live rendering" experience when editing LaTeX documents in a supported editor: change something in the .tex file, the render window will update almost immediately with your change. Write something invalid, you get an error message immediately.

This can radically improve the LaTeX editing experience compared to the usual rebuild-and-wait-for-viewer-to-update experience, especially for large documents.

See the screencasts at the end of this file for a visual demo of TeXpresso capabilities.

Install

TeXpresso has been tested on Linux and macOS and should work with both AMD64 and Apple Silicon architectures. See INSTALL.md for dependency and build instructions.

On macOS, make macos-app additionally produces build/TeXpresso.app, a bundle whose dock icon renders at the correct HIG size. Launch it with open build/TeXpresso.app --args /abs/path.tex or point your editor at build/TeXpresso.app/Contents/MacOS/texpresso. The plain build/texpresso binary falls back to the default macOS binary icon.

Design

The TeXpresso system is built of the following parts:

  1. A TeX engine that renders LaTeX documents into PDF; we use a custom version of the XeTeX engine, modified to interact with the TeXpresso driver.

  2. A PDF renderer that renders PDF documents into images. We use MuPDF.

  3. A viewer that shows the rendered images and allows simple user commands (see Viewer controls below), built with libSDL.

  4. A driver program that talks to the editor to be notified of changes to the LaTeX document, maintains an incremental view of the document and the rendering process (supporting incrementality, rollback, error recovery, etc.), talks to the LaTeX engine to re-render the modified portions of the document, and synchronizes with the viewer.

    The driver is where the "live" magic lives. It is the texpresso binary, whose sources are in this repository.

The driver sends information between the editor and the renderer in both directions. In particular, it is possible to ask the editor to jump to a specific place in the LaTeX document by clicking on the viewer window or, conversely, to refresh the viewer window to display the document at the editor position.

Viewer controls

Keyboard controls:

  • ←, →: change page
  • ↑, ↓: move within the page
  • h, j, k, l: Pan page. Press shift to move faster
  • `` / b: Next page / previous page (like less).
  • p ("page"): fit to page
  • w ("width"): fit to width
  • c ("crop"): toggle crop borders
  • q ("quit"): quit
  • i ("invert"): dark mode
  • I : toggle theming
  • t ("top"): toggle stay-on-top (keeping TeXpresso above the editor window)
  • B ("border"): toggle window borders (previously "b")
  • + / -: Zoom in / out
  • F5, f, F11: Toggle fullscreen presentation
  • ESC: Exit full screen

Mouse controls:

  • click: select text in window (TODO: move Emacs buffer with SyncTeX)
  • control+click: pan page
  • wheel: scroll page
  • control+wheel: zoom

Supported editors

Emacs

TeXpresso comes with an Emacs mode. The source can be found in emacs/texpresso.el. Load this file in Emacs (using M-X load-file; it is also compatible with require).

Start TeXpresso with M-x texpresso. The prompt will let you select the master/root TeX file. It will try to start the texpresso command. If it is not possible, it will open (customize-variable 'texpresso-binary) to let you set the path to texpresso binary (/build/texpresso).

To work correctly, texpresso needs texpresso-xetex helper; when copying them, make sure they are both in the same directory.

M-x texpresso-display-output will open a small window listing TeX warnings and errors on the current page. Use M-x texpresso-next-page and M-x texpresso-previous-page to move between pages without leaving Emacs.

Neovim

A Neovim mode is provided in a separate repository texpresso.vim. It is not yet compatible with vanilla Vim, patches are welcome :bow:.

Visual Studio Code

A vscode mode is being developed in texpresso-vscode, thanks to @DominikPeters. Look for TeXpresso in the marketplace.

Screencasts

Neovim integration. Launching TeXpresso in vim:

https://github.com/let-def/texpresso.vim/assets/1048096/b6a1966a-52ca-4e2e-bf33-e83b6af851d8

Live update during edition:

https://github.com/let-def/texpresso.vim/assets/1048096/cfdff380-992f-4732-a1fa-f05584930610

Using Quickfix window to fix errors and warnings interactively:

https://github.com/let-def/texpresso.vim/assets/1048096/e07221a9-85b1-44f3-a904-b4f7d6bcdb9b

Synchronization from Document to Editor (SyncTeX backward):

https://github.com/let-def/texpresso.vim/assets/1048096/f69b1508-a069-4003-9578-662d9e790ff9

Synchronization from Editor to Document (SyncTeX forward):

https://github.com/let-def/texpresso.vim/assets/1048096/78560d20-391e-490e-ad76-c8cce1004ce5

Theming, Light/Dark modes:

https://github.com/let-def/texpresso.vim/assets/1048096/a072181b-82d3-42df-9683-7285ed1b32fc

Emacs integration. Here is a sample recording of me editing and browsing @fabiensanglard Game Engine Black Book: Doom in TeXpresso (using my emacs theme):

https://user-images.githubusercontent.com/1048096/235424858-a5a2900b-fb48-40b7-a167-d0b71af39034.mp4

Credits

Thanks to @DominikPeters for contributing the VS Code extension. Thanks to @merv1n34k for contributing the continuous integration and the logo.

Thanks our many contributors, @gasche, @haselwarter, @alerque, @sandersantema, @t4ccer, @schnell18, and @bowentan for improving features, portability and compatibility with many platforms.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Clatextectonictextexlive

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言