Skip to Content.
Sympa Menu

texmacs-users - Re: [texmacs-users] TeXmacs Upsilon: an enhanced, bleeding-edge TeXmacs to try (macOS, Linux, Windows, and in the browser)

Subject: mailing-list for TeXmacs Users

List archive

Chronological Thread  
  • From: Julien Frontisi <address@concealed>
  • To: address@concealed
  • Subject: Re: [texmacs-users] TeXmacs Upsilon: an enhanced, bleeding-edge TeXmacs to try (macOS, Linux, Windows, and in the browser)
  • Date: Wed, 4 Nov 2026 19:19:02 +0100

Thanks to Massimiliano and Pierre-Henry for their answers.
I had not seen that new folder. Copying my-texmacs-int.scm in progs does work well indeed !
Julien

Le 4 nov. 2026 à 19:11, Massimiliano Gubinelli <address@concealed> a écrit :

Upsilon has its own home .TeXmacs_Upsilon so you have to put it there. You can put a symlink to the one in your .TeXmacs folder but I preferred to keep things separate.

Max


On 4 Nov 2026, at 17:59, Julien Frontisi <address@concealed> wrote:

Thank you Massimiliano for this beautiful version of TeXmacs.
I hope I did not miss something already said, but how do I use my my-init-texmacs.scm file with Upsilon ?
Do I have to copy it somewhere in the Upsilon directory or can it be shared for all TeXmacs versions ? 
I’m using the QT6 version on a Mac.
Thanks again !
Julien

Le 26 oct. 2026 à 16:18, Massimiliano Gubinelli <address@concealed> a écrit :

Hi,

  Thank you very much for this detailed and encouraging feedback. It is good to hear that your macros, styles and plugins carry over. Full compatibility with TeXmacs is a goal of Upsilon.

LanguageTool integration. This is coming from the stock TeXmacs, kudos to Liza and Gregoire for setting this up nicely.

Maple. Upsilon already ships the Maple plugin, so you don't need to copy ~/.TeXmacs/plugins/maple. Your copy in ~/.TeXmacs_Upsilon/plugins/maple overrides the built-in one, so please remove it.

The launcher (tm_maple) runs ~/.TeXmacs_Upsilon/bin/tm_maple_9.sh, a modified copy of Maple's own start script, which then runs tm_maple_9. If only tm_maple_9 is there, the launcher tries to recompile both with make and gcc. When that fails, for example without the Xcode Command Line Tools, the session waits forever. There are two ways out:

1. copy both ~/.TeXmacs/bin/tm_maple_9 and ~/.TeXmacs/bin/tm_maple_9.sh into ~/.TeXmacs_Upsilon/bin/, or
2. delete them there, check that "gcc --version" works in Terminal, and let Upsilon rebuild them on the first start of a Maple session.

While looking into this, I also found that the plugin looked for Maple only in the folders of versions up to Maple 18, so it missed Maple 2015 and later. It worked only when "maple" was already in your PATH. This is fixed for the next build. I am tracking the hang itself at https://github.com/mgubi/texmacs/issues/517: in the future, a failed start should show its error instead of freezing.

If it still freezes, the following command shows where it stops. Please adapt the Maple version and the application path:

PATH="/Library/Frameworks/Maple.framework/Versions/<version>/bin:$PATH" \
TEXMACS_HOME_PATH=~/.TeXmacs_Upsilon \
TEXMACS_PATH="/Applications/TeXmacs Upsilon Qt.app/Contents/Resources/share/TeXmacs" \
sh -x "$TEXMACS_PATH/plugins/maple/bin/tm_maple"
I'd be grateful for its output.

Screen refresh after Cmd+E, P. I have opened https://github.com/mgubi/texmacs/issues/519 for this. Could you send me a screenshot and the definition of your shortcut (the kbd-map in your my-init-texmacs.scm)? Does the same happen when you print from the File menu? That will help me reproduce it.

Cocoa. Yes, the Cocoa build is the youngest and least optimized of the interfaces. For daily work I'd recommend the Qt6 build (or the Vue one). Speed is being worked on in all of them. If you have more specific situations where it is slow I will try to look into them.

Thanks again, and best regards,
Max

On 26 Oct 2026, at 10:15, Matthias A. Steiner <address@concealed> wrote:

Dear Massimiliano,

Thanks for your continued work on TeXmacs Upsilon. Even though it's still bleeding-edge software, I quite like your implementation of TeXmacs. I think you're catching up with Mogan/LiiiSTEM in many respects. This is all the more important since, starting with Mogan v3.2, Mogan/LiiiSTEM is no longer fully compatible with TeXmacs.

Here's what I particularly like about TeXmacs Upsilon:

  • The new logo: It's well designed and aesthetically much more pleasing than the official TeXmacs 2.1.5 logo, which I find far too dark and oversized on recent versions of macOS.

  • macOS compatibility: I consider supporting macOS 13 and later an excellent decision. Not everybody is running the latest version of macOS.

  • Full TeXmacs compatibility: Macros, *.ts files, *.scm files, and modified plugins work as expected (with one exception).

  • Markdown support: Pasting Markdown into TeXmacs works nicely.

  • LanguageTool integration: It works smoothly, including switching languages within a *.tm document.

  • Reference handling: Document → Update → All now correctly resolves references (label, smart-ref, and cite).

  • AI plugin: I haven't tested it yet, as I haven't had the time to configure it. Still, it's good to see it included.

  • Stability: The latest macOS-Qt6 build (2026.24.10.08:26) runs quite reliably on macOS 14.8.9 on my M3 iMac.

There are, however, a few issues I'd like to point out:

  • macOS-Cocoa build: It still runs somewhat slow.

  • Screen refresh under macOS-Qt6: After pressing Cmd+e, p (my shortcut for printing to PDF), the screen doesn't refresh completely. A truncated M- remains visible and only disappears after scrolling down one page.

  • Maple plugin: I copied the compiled Maple plugin from ~/.TeXmacs/plugins/maple/ and the tm_maple_9executable from ~/.TeXmacs/bin/ to the corresponding directories under ~/.TeXmacs_Upsilon/. However, the Maple session freezes on startup. I suspect I may need to recompile the plugin binaries or adjust the shell scripts to account for the different paths.

Anyway, thanks again for this new implementation. Keep up the good work!

Cheers,


Am 20.10.2026 um 08:35 schrieb Massimiliano Gubinelli <address@concealed>:

Hi Marc,

Thanks again. This one was a Qt 5 problem: the HTTP code was written for Qt 6 and its Qt 5 stubs were incomplete, and our CI built only Qt 6. It is fixed in upsilon_texmacs, and the CI now also builds with Qt 5 and GCC on Ubuntu 22.04, so it should not happen again. A git pull and make should now go through. With Qt 5, the requests to web services (the AI sessions) are not available; everything else is.

If you'd rather not build at all, there are now AppImages, single files that run on most distributions with nothing to install, and that live beside a stock TeXmacs without touching it:

https://github.com/mgubi/texmacs/releases/tag/upsilon-latest

(texmacs-upsilon-qt-x86_64.AppImage or texmacs-upsilon-vue-x86_64.AppImage; chmod +x and run.)

I'm very interested in the 2000-page test. If it's slow or misbehaves, sending the .tm files would help a lot.

Best regards,
Max


On 19 Oct 2026, at 21:42, Marc Mertens <address@concealed> wrote:

Hi Massimilano,

Thanks for the quick reply. I have followed your instructions and have
now a new set of errors

/usr/bin/ld: Objects/moc_qt_http.o: in function
`QTMHTTPHandler::qt_metacall(QMetaObject::Call, int, void**)':
moc_qt_http.cpp:(.text+0x1c9): undefined reference to
`QTMHTTPHandler::onReadyRead()'
/usr/bin/ld: Objects/moc_qt_http.o: in function
`QTMHTTPHandler::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)':
moc_qt_http.cpp:(.text+0x91): undefined reference to
`QTMHTTPHandler::onReadyRead()'
collect2: error: ld returned 1 exit status
make[1]: *** [makefile:533: Objects/texmacs.bin] Error 1
make[1]: Leaving directory
'/home/marc/Downloads/texmacs.test/texmacs/src/src'
make: *** [Makefile:59: TEXMACS] Error 2

As soon as I manage to build texmacs I will do some performancs tests.
Alternative I can send you my *.tm files for the document of 2000
pages.

Thanks a lot for your work on texmacs

Best regards


On Mon, 2026-10-19 at 20:07 +0200, Massimiliano Gubinelli wrote:
Hi Marc,

Thanks for trying it, and for the report!

GCC is right there: a structure in the tree-sitter code had a member
named like a type used earlier in the same structure, which C++ does
not
allow. Clang accepts it, and our continuous integration built
everything
with clang (configure picks it whenever it is installed), so it
slipped
through. It is fixed in upsilon_texmacs, and the Linux Qt build of
the CI
now uses GCC, which compiles the whole tree.

To get the fix:

 cd texmacs
 git pull
 cd src && make

(or download the sources again). If you prefer not to wait for a
rebuild, the ready-made Linux packages are at

 https://mgubi.github.io/texmacs/downloads.html

I'm curious to hear how it does with your 2000-page document,
especially the speed of typing and of loading.

Best regards,

Max

On 19 Oct 2026, at 11:55, Marc Mertens <address@concealed>
wrote:

Hi Massimilano,

Looks great, I have a document of +/- 2000 pages (based on +/= 13
*.tm files) which I think is a good test. I downloaded the source
version for testing and tried to build it but got the following
error:

syntax_region.o -c ./Plugins/TreeSitter/syntax_region.cpp -o
Objects/syntax_region.o
./Plugins/TreeSitter/syntax_region.cpp:110:11: error: declaration
of
‘TSTree* syntax_region_rep::tree’ changes meaning of ‘tree’ [-
fpermissive]
110 |   TSTree* tree;
    |           ^~~~
In file included from System/Language/code_lines.hpp:13,
               from ./Plugins/TreeSitter/syntax_region.cpp:11:
Kernel/Types/tree.hpp:30:7: note: ‘tree’ declared here as ‘class
tree’
 30 | class tree {
    |       ^~~~
make[1]: *** [makefile:388: Objects/syntax_region.o] Error 1
make[1]: Leaving directory
'/home/marc/Downloads/texmacs.test/texmacs/src/src'
make: *** [Makefile:59: TEXMACS] Error 2

Thanks a lot for your work

Best regards

Marc Mertens

On Mon, 2026-10-19 at 09:05 +0100, Massimiliano Gubinelli wrote:
Hello everyone,

I'd like to introduce TeXmacs Upsilon, an enhanced and bleeding-
edge
version of GNU TeXmacs with experimental features. For the past
few
weeks I have been collecting several lines of work on TeXmacs in
one
tree, the branch upsilon_texmacs, so that they can be built, used
and
tested together. It is stock TeXmacs (the SVN trunk) with these
additions merged in. Each one is still kept as its own branch, so
it
can be proposed upstream separately. I would be very grateful if
some
of you could try it and tell me what breaks.

Inside TeXmacs, Help > TeXmacs Upsilon features gives a tour of
everything below, with the menus to use and links to the manual.

WHAT IS IN IT

Fixes and speed

 - Many bug fixes not yet upstream, for bugs reported on
Savannah
and
   on GitHub: the Scheme bridge, LaTeX import/export, BibTeX,
list
   views, editing modes, keyboard maps, Windows paths, and more.
 - Incremental typesetting: only the parts of a document that
change
   are typeset again, so typing in long documents is faster.
Styles
   and files are cached until they change on disk.

Fonts and mathematics

 - OpenType mathematics: formulas laid out from the MATH table
of
any
   OpenType math font, with stretchy delimiters and accents
taken
from
   the font. Text fonts get their OpenType features, and
families
get
   their weights and variants (Format > Weight).
 - About two dozen math fonts paired with matching text fonts,
most
of
   them shipped, plus a font inspector.
 - More fonts (DejaVu, Gentium Plus, the Antykwas, Iwona,
Kurier,
IBM
   Plex weights...).
 - A font design page: one tab per part of a document (text,
   mathematics, sans serif, typewriter, blackboard bold,
calligraphic,
   fraktur) showing samples. You can apply a choice to the
document
   and save it under a name.

Interfaces

 - Besides Qt there is a native Cocoa interface for macOS, and
Vue,
an
   interface drawn entirely by TeXmacs. Both are drawn on the
GPU
   (Metal on macOS, OpenGL elsewhere), with MuPDF as a fallback.
 - Light and dark themes, icon bars at the left or at the top,
   responsive tabs and smooth zoom.
 - New icon sets: neo-classical (the default), monochrome and
Lucide.

Scheme interpreters

 - s7 replaces Guile 1.8 by default. It needs nothing installed
and
   starts much faster (the first window appears in about 0.7 s
instead
   of 1.9 s).
 - An experimental femtolisp backend: a small Scheme that works
   directly on TeXmacs' byte strings and caches its compiled
files.
It
   boots about as fast as s7, is faster on conversions such as
the
   LaTeX export, and works on the desktop and in the browser.
 - Guile is still available as a build option, and the same
Scheme
   code serves all three.

Documents and references

 - Git integration (Version > Git): a side panel, commits, log,
   branches, tags, stashes, push/pull/clone, comparison with any
   revision, and structured three-way merges of TeXmacs
documents,
   which also work as a git merge driver.
 - Zotero citations, read live from the Zotero desktop app:
search,
   key completion, bibliography files kept in sync with Zotero,
and
   group libraries.
 - CSL bibliography styles (the styles used by Zotero, Mendeley
and
   Pandoc), processed by TeXmacs itself: csl-apa, csl-ieee,
   csl-chicago-... and any other .csl file you place next to the
   document.
 - New converters: Markdown import/export and Word/OpenDocument
   (.docx/.odt) import/export.

Program code

 - Syntax of 22 languages through tree-sitter, for source files,
code
   blocks in documents and session inputs. This gives colours,
folds,
   an outline, structural selection and moves, bracket handling,
   indentation and comment toggling.
 - A language server (LSP) client for source files, which open
in
tabs
   of their own: diagnostics, completion, hover, signatures,
   references, renaming, quick fixes, formatting and symbols.
The
code
   blocks of a document in the same language are seen by their
server
   as one file, so definitions in one block are known in the
next.

Chatbots

 - AI sessions inside a document with ChatGPT, Claude, Gemini,
   Mistral, Ollama, OpenRouter and Albert. Answers are streamed,
you
   can attach files to your questions, costs are shown, and API
keys
   are kept in an encrypted wallet.

Documentation and tests

 - Developer documentation inside TeXmacs (Help > Developer
   documentation): about 400 pages, roughly 250 of them on the
   internals of the source code.
 - Many new tests: C++ unit tests, nearly sixty Scheme
regression
   suites, document regressions, and a headless typesetting of
the
   whole manual. All of them run in CI on every platform.


TEXMACS IN THE BROWSER

The same source tree also compiles to WebAssembly. You can try it
now,
with nothing to install:

 https://mgubi.github.io/texmacs/

What works in the page:

 - editing and typesetting, all menus and dialogs, a tab per
document;
 - files stored in the browser (upload, drag and drop, zip
projects,
   downloads, backups) and PDF export;
 - the system clipboard and spell checking;
 - the Markdown and office converters, the font design page, and
   program code with tree-sitter;
 - plug-ins that run inside the page: Python (Pyodide), R
(webR),
TikZ
   (TikZJax), Asymptote, _javascript_ and the AI sessions.

It draws with WebGPU in Chromium-based browsers and with WebGL2
elsewhere. Add ?gpu=0 to the address to draw with MuPDF instead.
Help > TeXmacs in the browser lists what does not work yet
(anything
that needs to run a program on your computer, such as language
servers
or Git) and the recent changes.


BUILDS

All the builds are rebuilt by the CI from the latest
upsilon_texmacs
and published at

 https://github.com/mgubi/texmacs/releases/tag/upsilon-latest

 - macOS (Apple silicon and Intel, macOS 13 or later): two DMGs,
one
   for Cocoa and one for Vue, plus a Qt build for Apple silicon
(zip).
   They are signed ad hoc and not notarized, so macOS refuses to
open
   them the first time. Right-click the app and choose Open, or
run

     xattr -dr com.apple.quarantine /Applications/TeXmacs.app

 - Linux (built on Ubuntu 24.04, x86_64): a tarball with Qt 6
and
one
   with Vue.
 - Windows (x86_64): a zip with Qt 6 and one with Vue. Unpack it
and
   run TeXmacs-Windows\bin\texmacs.exe (there is no installer).
 - From source: branch upsilon_texmacs of
   https://github.com/mgubi/texmacs
   Run "cd src && ./configure && make" as usual. Pick the
interface
   with --with-gui=qt|cocoa|vue|... and the Scheme with
   --with-scheme=s7|femtolisp|guile. The README describes each
option.

Warning: this is work in progress. Keep backups of important
documents,
and expect rough edges, especially in the Cocoa and Vue
interfaces,
with femtolisp, and in the browser.


PLEASE TEST AND REPORT

Any feedback is welcome, whether it is a crash, a document that
renders
differently from official TeXmacs, a missing feature in one of
the
interfaces, or something that is simply confusing. Please open an
issue
at

 https://github.com/mgubi/texmacs/issues

or reply here. When possible, include:

 - which build you used (OS, interface, and for the browser the
commit
   shown in Help > TeXmacs in the browser);
 - the steps that trigger the problem, and a small .tm file if
the
   problem depends on the document.

Thanks for trying it!

Max (& Claude)













Archive powered by MHonArc 2.6.24.

Top of Page