https://wiki.contextgarden.net/
It's a monolithic kernel with a relatively sane collection of "setup" macros that, by and large, can accomplish much of what LaTeX and its packages can do.
If you're curious about how to build TeX from scratch, have a look at my TeX.SE answer:
https://tex.stackexchange.com/a/576314/2148
I'd imagine making a FOSS port in Rust that has non-cryptic error messages wouldn't be a multi-year project using modern GPTs.
How much more compatible with LaTeX is ConTeXt than typst? For example, is there tikz for ConTeXt?
ConTeXt is still TeX, but its syntax is very different from LaTeX's. Nearly every command takes an optional set of key–value arguments, and everything is integrated into the core, so the syntax is much more regular. Example:
%% Compile with "context <filename>.tex".
%%
%% ConTeXt is included in the default installation of TeX Live, so if you have
%% LaTeX installed, you probably already have ConTeXt installed too.
\setupcaptions[color=red]
\setuphead[section][color=blue]
\setupheader[color=green]
\definehighlight[emph][color=orange]
\setupTABLE[each][each][color=red, framecolor=green]
\starttext
\section{Introduction}
\startplacefigure[title={Caption.}]
\externalfigure[sys:///cow.pdf][width=2cm]
\stopplacefigure
Hello, world! \emph{This is emphasized text.}
\startTABLE[textcolor=red]
\setupTABLE[row][1][style=bold]
\NC[style=italic] Header 1 \NC Header 2 \NC Header 3 \NC\NR
\NC Cell 1 \NC Cell 2 \NC Cell 3 \NC\NR
\stopTABLE
\pagebreak
\section[
title={Alternate Syntax},
style=smallcaps,
]
\samplefile{knuth}
\startsection[title={This works too!}]
Some inline math: $x_{1, 2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$.
\stopsection
\stoptext
Output: https://www.maxchernoff.ca/files/context-example-1.webp https://www.maxchernoff.ca/files/context-example-2.webp> How much more compatible with LaTeX is ConTeXt than typst?
Most engine primitives (\hbox, \def, \relax, etc.) and Plain TeX macros (\quad, \nobreak, \bigskip) work in both LaTeX and ConTeXt, and the math syntax is almost identical between LaTeX and ConTeXt too. Otherwise, they don't share very much in common.
> For example, is there tikz for ConTeXt?
Sure, it's called TikZ :) Meaning that TikZ has native and full support for ConTeXt, so
\usemodule[tikz]
is all that you need to use it. Metafun [0] is ConTeXt's built-in alternative to TikZ, but you can use both in the same document if you want.[0]: https://www.pragma-ade.com/general/manuals/metafun-p.pdf
> It's a monolithic kernel with a relatively sane collection of "setup" macros that, by and large, can accomplish much of what LaTeX and its packages can do.
I don't know what constitutes "sane", but I literally just downloaded and installed it right now because you mentioned it, and it choked on a trivial hello world:
$ mtxrunjit --script context doc.tex
...
> tex error on line 1 in file doc.tex: ! Undefined control sequence
...
1 >> \documentclass{article}
2 \begin{document}Hello, world\end{document}
...which might explain why it goes unmentioned?I feel like this is gonna be a tougher sell than you expect. How the heck is a user expected to switch to ConTeXt?
You can find a "hello world" here: https://wiki.contextgarden.net/Document_layout_and_layers/Tu...
Both use TeX as their layout engine. Both are different type of markup languages that live on top of TeX.
The reason TeX is written in a 1984 dialect of Pascal is that the typesetting bugs have been solved in a completely specified language; it is much easier to write a transpiler for Pascal->C than to rewrite TeX. Asking an LLM to rewrite it in the language-du-jour is a huge cost for very little benefit.
BTW it has been so depressing in the last few months to see LLM-generated projects make claims about performance/accuracy, but there is no benchmarking code on Github and the "thousands of tests" are all useless happy paths. I am sure we will see some grifter claim that Claude rewrote TeX and I am sure dozens of credulous HN users will take it seriously. But we won't see a useful rewrite. It'll be resume-oriented slop like that dishonest Mathematica-in-Rust project we saw last week.
I thought that the combination of the Pascal and Java versions[1] of TeX would be sufficient guidance to produce another language/implementation.
> is a huge cost for very little benefit
A greenfield Java implementation with an MIT license would have been useful[2] for rendering TeX inside of my desktop Markdown editor[3]. Instead, I had to rename all the Java source files to abide by the NTSPL license terms (or GPLv2, which is viral).
[1]: https://en.wikipedia.org/wiki/New_Typesetting_System
[2]: https://gitlab.com/DaveJarvis/KeenType/-/blob/main/LICENSE.t...
The problem is that today we have a massive gap in development: there was a time when high-quality FLOSS development existed, followed by an era of resting on one's laurels while creating very little, mostly just stuff built on top of existing systems in an attempt to simplify things, which only resulted in making them more complex and fragile, with zero innovation.
Today, we have generations of developers who simply don't know classic FLOSS tools beyond the surface level and lack the technical background to create new ones that aren't dependent on the tech giants. This is because obsolete universities have de facto trained legions of big tech labourers rather than autonomous technicians capable of standing on their own two feet.
The issue is that there was never a real desire to give "the power of computing" to end users. Consequently, at the first opportunity, the desktop was undermined and rejected to keep everyone dependent on someone else's services. Now, young developers don't know how to evolve back towards the desktop, even though they sense, without fully understanding, that this is the right way forward.
We are losing decades of potential evolution with repercussions for centuries to come, just to feed a handful of people who profit from others' ignorance.
So, while it's true that on one hand we have excellent tools that are obsolete, clunky, and difficult to integrate today, it's also true that on the other hand we have a void. This is because the foundations of modern software are flawed and unsustainable, created solely for the interests of Big Tech. Either we move past this or we head for ruin, as has been happening for some time now; eventually, it will be impossible to carry on and we'll have to start again from scratch, with enormous costs, delays, and damage.
And I have no idea how it could be even remotely possible for a youngling to discover the same things in the torrent of sloppy SaaS.
Do you know of a "hitchikers guide to the FLOSS galaxy" that could teach the ways of the elders, from the ground up?
[1] https://www.latex-project.org/latex3/
[2] https://github.com/latex3/latex3
It's either already here or never happening, depending on your perspective [0] [1].
> it would be nice to have an automation in the style of Tectonic
What do you mean by "automation"?
[0]: https://www.texdev.net/2024/11/11/the-mythical-latex3
[1]: https://tug.org/TUGboat/tb44-1/tb136mitt-history.pdf#page=5
But in the end, it worked surprisingly well. Mind you, I didn't have anything too fancy in the paper (no figures, minipages, tikz, etc...), so that made the task very easy. But it was a good workflow:
- Write org-mode text in left buffer.
- Have Emacs issue a .tex export on save.
- Have the document automatically compile when .tex files are newer than the .pdf file
- Have the right buffer show and automatically reload the pdf file.
That made it so I could just write stuff in the left buffer and on save, the pdf in the right buffer would update and reflect the last changes. I found that a quite pleasant setup.So happy to see new texlive as well
[0]: https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-94...
[1]: https://www.latex-project.org/news/latex2e-news/ltnews.pdf#i...
If you're stuck on something LaTeX related, remember there's the latest edition to The LaTex Companion. It even has an appendix explaining the (in)famously cryptic LaTeX/TeX error messages:
https://latex-project.org/help/books/
There's also, among other resources, the great LaTeX Font Catalogue: https://tug.org/FontCatalogue/
Enjoy the new release!
On the scholarly front, the use of BibLaTeX is a significant step forward re: BibTeX.
- ar5iv [3] is somewhat outside the TeX world, but I find it pretty interesting since it's able to successfully convert most articles to HTML. Usually conversion tools have either required perfect markup or manual fixes, but ar5iv is completely automatic, and it even works with the horrible programming practices that most document authors use.
- I'm personally a big fan of ConTeXt [4], a lesser-known TeX format. ConTeXt itself isn't new, but it tends to gain new features quicker than the other formats; some recent new features include improved math typesetting [5] and improved paragraph breaking [6] [7].
- The LaTeX Team just published "latex-cmds" [8] a few weeks ago, which is a handy reference to all the recently-introduced macros (and some older ones too).
[0]: https://latex3.github.io/tagging-project/tagging-status/
[1]: https://pdfa.org/accessible-math-in-pdf-finally/
[2]: https://tug.org/TUGboat/tb46-2/tb143fischer-tagging25.pdf
[3]: https://ar5iv.labs.arxiv.org/
[4]: https://wiki.contextgarden.net/Main_Page
[5]: https://tug.org/TUGboat/tb43-2/tb134hagen-math.pdf
[6]: https://tug.org/TUGboat/tb46-1/tb142hagen-paragraphs.pdf
https://www.tug.org/levels.html seems like a good start
My personal recommendation would be to just always use "lualatex", or "pdflatex" if you have older documents that won't work with LuaLaTeX for some reason. I'm also a big fan of ConTeXt [2], but I realize that that isn't a practical option for most people.
[0]: https://tug.org/members/TUGboat/tb46-3/tb144berry-engines-fo... [1]
[1]: Paywalled until April, sorry. Email me and I can send you a copy though (this offer is open to anybody).
Look for /texmf-dist/doc/fonts/memdesign/memdesign.pdf if you want a fun non-technical one.
https://ontouchstart.github.io/rabbit-holes/tex_rabbit_hole_...
tlmgr repository set https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2025/tlnet-final
(You can replace that URL with any of the historic mirrors in [0])The system is flexible and simple.
Used TeX for the same and had to lose sanity for it to even work semi well.