Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Guile in TeXmacs (2019) [pdf] (uni-bonn.de)
73 points by mgubi on April 16, 2020 | hide | past | favorite | 41 comments


I'm mourning on two graves every time I'm tuning my Org-mode workflow. First, that Emacs had to have its own language so I can't take my code and run it in an up-to-date and stable vm embedded in an Android app. Second, that additions and modifications to Org-mode tend to use Emacs' text juggling here and there instead of a higher-level Org API and string functions—so even if I had an embedded Elisp, I'd need to implement half of Emacs.

Emacs' flirt with Guile promised to mend one of those ailments—especially considering how on my oldish machine Emacs' GC hiccups every few seconds when just scrolling through an outline, and Emacs internals don't seem to get lots of low-level development these days (understandably, but still). Alas, that hope now has a grave of its own.


> Second, that additions and modifications to Org-mode tend to use Emacs' text juggling here and there instead of a higher-level Org API and string functions

I was shocked when I started looking into Org's API and found everything is done via parsing. There's virtually no tree/graph type API.


That's done throughout all Emacs addons: basically its text-modification API seems to have been constructed backwards from what's available to the user and the UI, instead of the other way around, and depends a lot on the cursor position. Even the more-or-less popular string library ‘s’ is a third-party addon. So Org pretty much went on with the common practice here.

With the volume of addon development that Emacs managed to get, it's a quite solid case of ‘worse is better, but you're now stuck with the worse for your life’.


There's org-element, if you want to parse/generate org-mode, but it's true that many packages just operate on the text.


org-element doesn't go far enough. Say I wanted to traverse my document in depth first order. Or in breadth first order. How do I do it? org-element does not let me choose.

I say this as there is another well known node based editor out there: Leo. Nonprogrammers manipulate their documents trivially with Python code in a way that's a huge pain in Org mode even for seasoned developers.


somebody should write an org-mode-like clone in TeXmacs, taking advantage of the structured editing features there. Is powerful enough to play tetris (https://github.com/mgubi/tm-tetris) , sure you can do org-mode kind stuff there too.


TeXmacs is a marvel, and for literally decades I've wondered why it hasn't seen broader adoption.


Decades ago at least it used to crash and eat your data, which I think is a pretty strong barrier to adoption for software that holds important data of yours in its own proprietary format. I just tried the most recent version, and after two decades it still feels pretty alpha quality (Menu -> Quit Texmacs -> no effect; extremely laggy; low-res icons etc.).


>for software that holds important data of yours in its own proprietary format

This seems like an odd description. TeXmacs may be the only implementation of the format, but it seems well-documented and the code is all free software. I don't think I'd call it a proprietary format.


I tried it a few months ago because i really prefer GUI tools to entering weird codes in text files (and i'm saying that as someone who has made his own tools with his own weird codes :-P) and it felt very "alpha quality" to me too. It would randomly crash or hang, losing changes or do nothing and when it worked it would feel sluggish. To test it out i tried to replicate some pages from the first section of the original Turbo Pascal 3 manual (which is mostly text) but i could barely do more than two pages.

I like the idea, but the execution wasn't that good. It really didn't felt as something i could rely on at all.


Many of us use everyday (me included, typing papers of +60 pages on monthly basis). There are still some rugged edges in the GUI but is certainly not alpha quality software. The Qt interface have been there since at least 2009 and nowadays we have one or two nasty bugs which we plan to address in the following months but nothing serious. As you can see from these videos (here https://www.youtube.com/playlist?list=PLjXdYclFpynD0ufg_pp-5... ) all is quite stable. Unfortunately TeXmacs stress many corners of the Qt/Mac port and we need to go around bugs there constantly. If you experience more reproductible crashes then would be good to know, either show up in the mailing list or file a bug report in Savannah. If nobody complains we cannot fix them :)


Doesn't this have the same problem as lyx but worse? It might be nice for you to use, but sharing your files with colleagues doesn't work well and submitting to journals (converted to tex) also does not work well.


It does not. I used it every day for academic research. Most of my papers converts right away to TeX for publications. Of course your have to collaborate with similarly minded people. But sometimes I just write my part in TeXmacs and then copy and paste in the collaborative LaTeX file. YMMV. And you can use it to do online lecture (not quite like LyX) https://www.youtube.com/watch?v=KyVc6wKE8Oc


How well does the reverse process work? If your collaborators make changes to the TeX, is there a way to sync the two together?

We tend to use git repos + XeLaTeX in my group.


Back and forth conversion is not fully supported, we try to have good match (see e.g. https://www.texmacs.org/joris/latexconv/latexconv.pdf ). TeXmacs has its own format, so no: you cannot collaborate with people which want to edit LaTeX files. But you can convince them to use TeXmacs. :) I've never regretted. I go back to LaTeX sometimes but most of my documents are now created in TeXmacs. If you need a tool to collaborate then use things like Lyx or TeXstudio, etc... We had to get away from TeX to remove the intrinsic limitations of that technology. There is not much you can you if you want to stick to complete TeX compatibility.


Joris van der Hoven, the creator of TeXmacs, write most of his papers (and books) with it: https://www.texmacs.org/joris/main/publs.html


There was widespread belief for years that the project was dead. I'm sure that didn't help.

The interface was somewhat clumsy in the early years (around 2005 or so). It wasn't responsive and a lot of things were unintuitive.

Some things simply didn't work. There was a concern that if something broke, it might never be fixed.

Keep in mind that my usage ended about 15 years ago. Maybe it's better now, but LyX was a good alternative, and I've never had a reason to move. It can be hard to overcome a slow start.


Unintuitive interface, does not mean bad. Means just TeXmacs is different from other software (like LyX) for example. But the interface is well thought and carefully implemented. It requires some time to get acquainted but then you can do many things are not possible with other software (like shown here: https://www.youtube.com/playlist?list=PLjXdYclFpynD0ufg_pp-5...) And is not dead. :) We are a small number of developers but the software is used every day to write academic papers with a lot of math from a very affectionate user base. If LyX works well for you no problem. But you should give it yourself some time before making a judgement. It is surely very different from LyX.


Oh, I definitely don't want to discourage anyone from using TeXmacs. It is a great piece of software. I was only explaining my thoughts on why it's not more popular. I think a lot of people would like it if they had ever heard of it.


Seconded. It's a really lovely designed piece of software. it's possibly the only WYSIWYG editor that I prefer to use over the code-based alternative.

edit: the bugs are real though, no denying that.


We are striving to fix most of the big problems before releasing version 2.1 (hopefully this year). Please report the bugs/crashes. Only in this way we can improve it.


Now I've got you - The biggest issue I have with texmacs is how difficult it is to interact with the community.

Your mailing list archive is not indexed by google (except for the narkive version, where search is broken) so answered questions are generally not visible to new users.

The default search in the list archive only searches a single month, this is useless. Searching multiple months is non-obvious.

Some project-deaf suggestions from this outsider are:

- put your lists on Google Groups so they are easily searchable and findable for new users

- just put the damn thing on GitHub and use their Issues system (or GitLab or at least something that isn't Savannah).

It might be a bit annoying for current project members to get the hang of it but I think, in 2020, it is very difficult to grow and show off a community that's based on GNU Savannah!


I can agree on the mailing, I will discuss your remarks with the other developers. We are trying to support also other "community platforms", so we have now a forum:

http://forum.texmacs.cn

a Gitter room:

https://gitter.im/texmacs/Lobby

and a GitHub mirror here:

https://github.com/texmacs/texmacs

where you can post PR. As for Bugs we prefer the savannah bug tracker but if you post something on GitHub we will take it in consideration too.


I'm surprised nobody mentioning the similarity of TeXmacs to Tioga editor within the legendary CEDAR desktop environment from Xerox [1]:

I've read somewhere some years ago that if you can create a usable hybrid combination of MS Office Word document (WYSIWYG) and TeX then you have a killer application for document editor. Additionally, similar to Tioga with the fact that you can also use other programs inside TeXmacs (e.g. spreadsheet, Octave, etc) is a huge boon for productivity [2].

I think the naming of the TeXmacs does create confusion though since it creates the impression that this is combination of TeX and Emacs but it's neither of them. Just like the Holy Roman Empire after the collapsed of Roman Empire, it's neither Holy nor Roman nor an Empire.

Now hoping for the modern incarnation version of CEDAR desktop environment.

[1] https://www.youtube.com/watch?v=z_dt7NG38V4

[2] http://cajun.cs.nott.ac.uk/wiley/journals/epobetan/pdf/volum...


Interesting! I didn't knew the Tioga editor. All these pioneering work is really inspiring! Our goals fits very well into the paradigm of active documents and we have already many features implemented and beautifully typesetted : https://www.texmacs.org/joris/icms14/icms14.pdf


I followed some of the discussions of the porting to guile3. I have been amazed at what kind of code guile1.8 allowed, with _no_ separation of macro expansion and runtime.:

    (defmacro (foo bar)
      (define (baz n) (bar 4 n))
      baz)
    ((foo +) 4)
would work just fine. No separation between runtime and compile time. this hasn't been the case since 2.0, but 1.8 is still used places. Hopefully their port to guile 3 works so that they can reap the benefits of the work out in there over the last 10 years.


The port is ready and working. We are waiting the release of TeXmacs 2.1 soon and then we will start working to integrate it to the main branch. TeXmacs will run with Guile 3.0 with the codebase fully compiled. It should improve loading times and some critical operations, but not benchmarks have been done yet.


great! thanks for letting me know.



Is it better than TexStudio??


Of course. And no. It depends. :) It is refreshing. Nothing to do with TeXstudio, LyX, TeXmaker, TeXshop. The name is misleading. Opens your mind. Like Haskell, like Lisp, like Erlang, looks odd. But then you understand you always did it wrong before, and you never go back. Bottom line: try.


Upvoting for the looped "st" ligatures in the slides.

+1 would sit through


I find those quite odd. It seems overly ornate compared to the rest of the font, which doesn't even contain the 'fi' ligature.


Me too, this is the Linux Libertine font. I need to fine a way to disable those ligatures :)


Please, all deities, nobody use that ST ligature. It's cute for about a millisecond and then it's annoying.


I checked just now and indeed that ligature has been supressed in the recent versions of TeXmacs. :)


It was never the default. You don't get them unless you specifically ask for them.


No,in a previous version of TeXmacs they were active by default, we changed that now.


It is not Linux Libertine, it is Biolinum, which happens to come packaged with Libertine. Libertine is a serif font in the Caslon penumbra.

The author turned on the "st" elective ligature, but not the "ct", which is entirely why it looks odd.

You don't get those ligatures without specifically asking for them. It must be said that the Libertine ones look better.


Seriously, is this really a (good) thing? I opened the slides, and spent the first 3-5 seconds having my eyes drawn to this ligature, trying to figure out why this word is different than what my brain is used to. I cannot imagine that this is a desirable effect.

Clearly, I'm missing something, happy to be corrected!


[flagged]


@dang




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: