Co-maintainer here. Tectonic is a cool project, but hasn't seen any significant changes in a few years---and likely won't anytime soon. It seems we maintainers don't have the time and motivation to put serious work into Tectonic. I haven't looked at the code in years (and thus may be wrong), but here's a quick overview: Tectonic's code consists of thin bindings to /harfbuzz/graphite/etc and a vendored XeTeX (in C, wi…
While Typst appears to be popular, I think that TeXmacs, https://www.texmacs.org/ , which is a program independent from both TeX and Emacs, is the kind of program that we need for writing: a fully WYSIWYG, fully structured document preparation system, in which you edit the structure of your document in a WYSIWYG way. When editing the structure on-screen, the user has no need to be aware that is doing so, as it looks…
Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
21–30 of 45 posts
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#22I have been using TeX/LaTeX for ages and today same issues hinder the user experience like multiple decades ago - cryptic error messages, complex pipeline, lack of the proper Unicode symbols support out of the box, and so on. Nowadays, with Typst existing, it's vital for TeX ecosystem to solve these issues, since none of them are present in Typst. Projects like Tectonic would solve this for TeX, but they lack enough…
(Disclaimer: I'm on the TeX Live team) > cryptic error messages These have somewhat improved recently, but I agree that they're still not great. > complex pipeline You can typically just run "latexmk --lualatex " and your document should compile in a single step. > lack of the proper Unicode symbols support out of the box UTF-8 has been the default input encoding since 2018 [0], so character input should mostly just…
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#23Earlier quoted context omitted.
Using LaTeX is mostly fine, except for the endless compile times, useless error messages, lack of unicode, etc. like the GP said. I'm maintaining an internally used LaTeX document class and the development experience is even worse. TeX has no concept of such avant-garde ideas like lists, dictionaries, or namespaces. Things break all the time, and sometimes only when you load three specific packages in a specific orde…
> except for the endless compile times, useless error messages, lack of unicode, etc. Some of these have been fixed; see my sibling comment [0] for more details. > TeX has no concept of such avant-garde ideas like lists, dictionaries, or namespaces. […]. The LaTeX3 syntax looks like a bad joke. But that is in fact the entire purpose of LaTeX3. I agree that the syntax looks intimidating, but it's actually quite nice o…
However, regarding this:
> Much like operator overloading in other languages, catcode changes in TeX can indeed be misused and are sometimes confusing, but they're also a pretty useful solution to problems that would otherwise be tricky to solve.
I'm sorry, but I've never seen overloading of such fundamental characters like the comment character or escape character anywhere. Or at least if you use these characters inside a string, it's pretty clear that the string context is special. In LaTeX I have no way of knowing which catcodes a macro has modified without essentially parsing the entire thing, which breaks syntax highlighters and language servers (something that increases quality of life in other languages substantially), because the compile times are prohibitive. The decision to let users redefine %, \ and literally every character seems like a really, really bad idea to me.
Other languages and syntaxes seem to do just fine, so I'm not sure what you mean by tricky to solve.
> most of these are due to the fact that LaTeX is 40-year-old software built on a 50-year-old engine, and has remained backwards-compatible with documents throughout that entire time
I realize that, and I appreciate what LaTeX (and by extension TeX) has done. It's a giant in sciences and the software world, of absolutely critical importance, but still. We learned a lot of lessons about writing software in the last 50 years, and Typst is applying these from the ground up. Unfortunately I don't have a lot of confidence that LaTeX can be modernized.
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#24Earlier quoted context omitted.
(Disclaimer: I'm on the TeX Live team) > cryptic error messages These have somewhat improved recently, but I agree that they're still not great. > complex pipeline You can typically just run "latexmk --lualatex " and your document should compile in a single step. > lack of the proper Unicode symbols support out of the box UTF-8 has been the default input encoding since 2018 [0], so character input should mostly just…
I recently had a document break because I used umlauts together with the subfigs package. Apparently both use " characters internally and clash badly. This is not a particularly exotic use case.
The core/official LaTeX code is really quite stable, but it's also very limited, so it's pretty reasonable to conflate it with the LaTeX ecosystem as a whole. But yes, the LaTeX Team is definitely aware of the problems caused by Babel shorthands (which is what " is in German), and they're trying to figure out some way to fix it without breaking other documents.
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#25Earlier quoted context omitted.
> except for the endless compile times, useless error messages, lack of unicode, etc. Some of these have been fixed; see my sibling comment [0] for more details. > TeX has no concept of such avant-garde ideas like lists, dictionaries, or namespaces. […]. The LaTeX3 syntax looks like a bad joke. But that is in fact the entire purpose of LaTeX3. I agree that the syntax looks intimidating, but it's actually quite nice o…
Thanks for your insight, much appreciated! However, regarding this: > Much like operator overloading in other languages, catcode changes in TeX can indeed be misused and are sometimes confusing, but they're also a pretty useful solution to problems that would otherwise be tricky to solve. I'm sorry, but I've never seen overloading of such fundamental characters like the comment character or escape character anywhere.…
I believe that Racket [0], Mathematica [1], Raku [2], and Rust [3] let you assign arbitrary meanings to most symbols, but these are indeed much more restricted than TeX is (and for good reason). But the issue is really more that TeX barely supports lexical scoping, and that it lets you change the global catcodes at any point in the document, since changing the meanings of characters before any code runs or only in the middle of a scope is pretty useful.
> Or at least if you use these characters inside a string, it's pretty clear that the string context is special.
Verbatim is essentially equivalent to strings in other languages, and it mostly works pretty well, aside from the huge problem that it's impossible to nest it or pass it as an argument to most macros.
> In LaTeX I have no way of knowing which catcodes a macro has modified without essentially parsing the entire thing
Agreed, this is pretty annoying, but the only consolation is that most documents don't change their catcodes very often (since it's usually a pretty terrible idea).
> Other languages and syntaxes seem to do just fine, so I'm not sure what you mean by tricky to solve.
Texinfo [4] is what I was mainly thinking of, since that is able to completely redefine TeX's syntax without needing to manually implement parsing itself (which would be the best strategy today, but was less feasible back when computers were much slower). Similarly, active characters are pretty useful (this is how ~ is defined to insert a non-breaking space, and is also useful for faux-Markdown [5]).
> We learned a lot of lessons about writing software in the last 50 years, and Typst is applying these from the ground up.
Yup, I first learned about Typst on the first day that it was released, and even then I thought that it had a good chance of suceeding, since it solved the problems that most users had (bad error messages and slow compile times), whereas the other TeX competitors focused on things like better typesetting quality, better extensibility, or easier programability, which most users don't care about at all.
I would be personally a little disappointed if Typst replaced LaTeX, but until that happens, I definitely hope that it continues to do well.
> Unfortunately I don't have a lot of confidence that LaTeX can be modernized.
There are lots of other non-LaTeX TeX formats that are quite modern (ConTeXt [6] is my personal favourite, but OpTeX [7] is nice too), and even LaTeX itself has improved quite a bit over the last 5 years or so [8]. But yeah, it's modernization process is still much slower than nearly any other piece of software, so I am also worried that this may end up being too little too late.
[0]: https://docs.racket-lang.org/guide/language-get-info.html
[1]: https://reference.wolfram.com/language/Notation/tutorial/Not...
[2]: https://docs.raku.org/language/slangs
[3]: https://doc.rust-lang.org/book/ch20-05-macros.html#function-...
[4]: https://en.wikipedia.org/wiki/Texinfo#Texinfo_source_file
[5]: https://tex.stackexchange.com/a/236457/270600
[6]: https://www.ctan.org/pkg/context
[7]: https://petr.olsak.net/optex/
[8]: https://www.latex-project.org/news/latex2e-news/ltnews.pdf#s...
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#26Earlier quoted context omitted.
While Typst appears to be popular, I think that TeXmacs, https://www.texmacs.org/ , which is a program independent from both TeX and Emacs, is the kind of program that we need for writing: a fully WYSIWYG, fully structured document preparation system, in which you edit the structure of your document in a WYSIWYG way. When editing the structure on-screen, the user has no need to be aware that is doing so, as it looks…
IIRC TeXmacs supports only quite limited subset of what LaTeX and TeX can do. Just like LyX, it could create new documents but will often fail opening ones that were created outside of it.
"corpus-scale conversion work aimed at 90% error-free HTML (currently 75%)"
although there may be issues that I do not understand or did not see (I looked at the paper very quickly) that make it more difficult for the authors than for the simplest possible translation.
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#27Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#28Co-maintainer here. Tectonic is a cool project, but hasn't seen any significant changes in a few years---and likely won't anytime soon. It seems we maintainers don't have the time and motivation to put serious work into Tectonic. I haven't looked at the code in years (and thus may be wrong), but here's a quick overview: Tectonic's code consists of thin bindings to /harfbuzz/graphite/etc and a vendored XeTeX (in C, wi…
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#29I have been using TeX/LaTeX for ages and today same issues hinder the user experience like multiple decades ago - cryptic error messages, complex pipeline, lack of the proper Unicode symbols support out of the box, and so on. Nowadays, with Typst existing, it's vital for TeX ecosystem to solve these issues, since none of them are present in Typst. Projects like Tectonic would solve this for TeX, but they lack enough…
(Disclaimer: I'm on the TeX Live team) > cryptic error messages These have somewhat improved recently, but I agree that they're still not great. > complex pipeline You can typically just run "latexmk --lualatex " and your document should compile in a single step. > lack of the proper Unicode symbols support out of the box UTF-8 has been the default input encoding since 2018 [0], so character input should mostly just…
Re: Tectonic: A modernized, complete, self-contained TeX/LaTeX engine
#30Earlier quoted context omitted.
(Disclaimer: I'm on the TeX Live team) > cryptic error messages These have somewhat improved recently, but I agree that they're still not great. > complex pipeline You can typically just run "latexmk --lualatex " and your document should compile in a single step. > lack of the proper Unicode symbols support out of the box UTF-8 has been the default input encoding since 2018 [0], so character input should mostly just…
I'd much prefer bad looking unicode characters to just skipping them and having broken output honestly. This is currently the main reason I'm considering moving from LaTeX to typst -- just always having broken output as I use more unicode (maths symbols, emojis) in my documents.
That is an option that you can enable. If you're only using a few different languages (which is by far the most typical case), it's mostly automatic with Babel (by using "\babelfont"), but if you really want to support everything, you can use something like [0] (which is admittedly rather convoluted).
> just always having broken output as I use more unicode (maths symbols, emojis) in my documents.
Adding "\tracinglostchars=3" anywhere in your document (before the offending character) will turn any missing characters into an error message, and using the "--halt-on-error" command-line flag will make that error fatal. I've talked to the LaTeX Team and they'd really like it if they could make those the default, but they have 40 years of backwards compatibility to deal with. I've also talked to the Overleaf support team, and it's depressingly common for documents to compile with 50+ errors and for users to think that that's completely okay.
LaTeX is fairly similar to C here, because in both cases, the errors are nearly always important, a good document/program should compile with zero errors, yet thousands of old documents/programs do compile with errors and their users complain if you make them fatal by default.