Open-source project
texmacs/texmacs avatar
texmacs/texmacs

GNU TeXmacs is a structured document editor with a Scheme inside

Mirror of the GNU TeXmacs SVN

659 stars86 forksTclGPL-3.0

At a glance

What is it?
GNU TeXmacs is a what you see is what you want editor for structured documents, mixing text, graphics, mathematics and interactive content in one typesetting engine. It is a GNU project mirrored from Savannah SVN, and its extensibility comes from a Scheme layer rather than a plugin API.
Who is it for?
GNU TeXmacs fits a mathematician, physicist or technical writer who wants one editor for prose, formulas, figures and slides with typeset output, and who is willing to learn the Scheme extension language to reshape the editor.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Tcl, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One editor for text, formulas, figures and slides

GNU TeXmacs is described as a free wysiwyw editing platform with special features for scientists, and the ambition is stated as a unified and user friendly framework for editing structured documents containing different kinds of content, text, graphics, mathematics and interactive content. The rendering engine uses high quality typesetting algorithms, so the document on screen is the document that comes out. Beyond the editor itself, the software includes a text editor with support for mathematical formulas, a small technical picture editor, and a tool for making presentations from a laptop. The framing is deliberately different from a word processor with equation support bolted on. A formula here is a first class object in the document structure rather than an embedded image or a foreign object, which is the difference that matters if your work is mostly formulas.

Scheme is the extension language, not a plugin API

The extension story is the part that distinguishes TeXmacs from other editors. New features can be added to the editor using the Scheme extension language, and new presentation styles can be written by the user. That means the same mechanism used to add functionality is used to change how a document looks, and it is a scripting language rather than a binary plugin interface, so extensions are text and reviewable. The documentation also notes that TeXmacs can be used as an interface for many external systems for computer algebra, numerical analysis and statistics, which is how the editor reaches into tools it does not implement itself. A native spreadsheet and tools for collaborative authoring are listed as planned for later rather than present, so treat those as roadmap items.

Formats on disk and converters for the LaTeX world

TeXmacs runs on all major Unix platforms and Windows. Documents can be saved in TeXmacs format, in XML or in Scheme, and printed as PostScript or PDF. Converters exist for TeX and LaTeX, and for HTML and MathML, which is the practical bridge to the rest of the document world. The choice of three save formats is more than redundancy, because the Scheme format in particular is what makes the editor scriptable from the outside, and XML is the format that lets a document be processed by other tools. If your pipeline needs to move documents in and out of another system, the converter and format list is the first thing to check, since a converter that does not preserve your particular construct will quietly cost more time than it saves.

Building it requires a long dependency list and both build systems

The COMPILE file is the entry point for developers, and the container image shows what the build actually needs. The dependency stage installs the autotools and cmake toolchains, ccache, git, rsync, gettext and texinfo, then a run of X11 and rendering libraries including libx11-dev, libxpm-dev, libxext-dev, libpng-dev, libfreetype6-dev, libgmp-dev, the nettle and gnutls libraries, libxcb1-dev, libxml2-dev, libxkbcommon-dev and libfontconfig1-dev, along with ghostscript for PostScript handling and the full set of Qt 6 packages, core, gui, widgets, svg, printsupport and network, plus their development counterparts and tools. The builder stage then runs the autotools path with guile-texmacs copied in from a separate build context, and points QMAKE at the Qt 6 binary:

dockerfile
FROM ubuntu:noble AS deps
USER ubuntu
ENV QMAKE=/usr/lib/qt6/bin/qmake6
WORKDIR /opt/texmacs/src

The configure line enables gnutls and an embedded Guile 1.8, and the compile runs ccache through g++ and gcc across all cores. The image also warns that a plain build drags in stale objects, so the source copy excludes the misc/docker directory.

A GitHub mirror, but the real repository is on Savannah SVN

The repository layout tells you this is a mirror rather than the source of truth, and the contributing section says so directly. Patches are contributed using the patch manager on Savannah or by submitting a pull request on GitHub, but while the project uses SVN on Savannah, GitHub serves only as a mirror, and to make synchronisation work there is an svn_mirror branch. The instruction to contributors is specific: do not submit pull requests against the svn_mirror branch, use the development branch as the base so the change can be merged properly into the main SVN trunk. For a user this is mostly trivia, but for anyone who wants to contribute it is the difference between a patch that lands and one that is silently lost. The default branch here is svn_mirror, and the last push was on 2026-10-18.

Release tags lag far behind the mirror's activity

The version history is where the mirror setup shows through. The most recent tags are v2.1.4 from 2024-06-02, v2.1.2 from 2022-05-25 and v2.1.1 from 2021-12-18, so the last named release is more than two years old while the mirror branch continues to receive pushes. Anyone who wants a stable, packaged build should look for a distribution package rather than a tag from this repository. Anyone who wants current behaviour has to build from the development branch, and that branch is where the Scheme extensions, the planned spreadsheet and the collaborative authoring work would live. The gap between the tag and the trunk is also a reminder that a mirror branch is a poor place to look for a changelog, since the real history lives in the SVN repository it points at.

Against a LaTeX-first workflow

The realistic alternative is a LaTeX toolchain with a separate equation editor, or a word processor with an equation plugin, and TeXmacs sits between the two rather than replacing either. A LaTeX workflow gives you the entire document ecosystem, from bibliographies to journal templates, and it is what almost every publisher and conference expects, but it is source-oriented and the preview cycle is slower. A word processor is fast and familiar, and it is where most people type, but it produces documents whose structure is a flat stream with embedded objects. TeXmacs gives you an editable tree with a real typesetting engine behind it and a scripting language for extending it. The cost is a much smaller ecosystem, an application you configure rather than a file format others accept, and a codebase that lives in SVN rather than on a forge with a conventional contribution flow.

Editorial conclusion

GNU TeXmacs fits a mathematician, physicist or technical writer who wants one editor for prose, formulas, figures and slides with typeset output, and who is willing to learn the Scheme extension language to reshape the editor. It does not fit a team that needs a stable release cadence, since the last tagged release is v2.1.4 from 2024 while the mirror keeps receiving pushes, and it does not fit a project that wants to contribute through GitHub pull requests against the mirror branch. Verify first that the documents you must produce map onto the TeXmacs, XML or Scheme formats, that your platform is covered by the build requirements, and that you can use the development branch and the Savannah patch manager rather than the GitHub mirror.

Frequently asked questions

What file formats can GNU TeXmacs save and export?

Documents can be saved in TeXmacs format, XML or Scheme, and printed as PostScript or PDF. Converters exist for TeX and LaTeX, and for HTML and MathML.

How do you extend GNU TeXmacs?

New editor features and new presentation styles are written in the Scheme extension language. The software can also act as an interface to external systems for computer algebra, numerical analysis and statistics, while a native spreadsheet and collaborative authoring tools are described as planned for later.

How do I contribute a patch to GNU TeXmacs?

Patches go through the patch manager on Savannah or as a pull request on GitHub, but GitHub is only a mirror of the Savannah SVN repository, so pull requests should target the development branch rather than the svn_mirror branch, which is the mirror branch used for synchronisation.

What does building GNU TeXmacs require?

The project needs the autotools and cmake toolchains, ccache, gettext, texinfo, ghostscript, the X11, fontconfig, freetype, gmp, nettle, gnutls and xml2 development libraries, and the Qt 6 packages including core, gui, widgets, svg, printsupport and network. The COMPILE file in the repository root holds the developer instructions.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. texmacs/texmacs on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/texmacs-texmacs.svg)](https://hysenlabs.com/projects/texmacs-texmacs)

Was this useful?