Hacker News new | ask | show | jobs
by dataflow 106 days ago
> ConTeXt often goes unmentioned in TeX threads.

> 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?

3 comments

You wrote a LaTeX document. ConTeXt does not claim to be compatible with LaTeX.

You can find a "hello world" here: https://wiki.contextgarden.net/Document_layout_and_layers/Tu...

I get that it can't handle LaTeX, that's literally my entire point. It's no wonder it goes unmentioned in TeX threads. The statement that it "can accomplish much of what LaTeX and its packages can do" pushes a lot under the rug. If that was a sufficient painting of reality, you could've just dropped the mic with "Ubuntu can accomplish much of what Windows and its packages can do" back in 2010, or with "Windows RT can do can accomplish much of what Windows can do" back in 2012, etc.
> I get that it can't handle LaTeX, that's literally my entire point. It's no wonder it goes unmentioned in TeX threads.

LaTeX != TeX. If this were a LaTeX thread, then I would agree with your point that it would make less sense to bring up ConTeXt (although someone always mentions Typst in every LaTeX thread, which is essentially the same thing). But this is a thread about TeX Live, which includes ConTeXt (and a dozen other TeX formats and engines), so it seems completely fair to mention it here.

The entire point of ConTeXt is that it is different from (and incompatible with) LaTeX. So for users who like parts of LaTeX (its output quality, its math typesetting, its underlying box model) but dislike other parts (slow speed, package conflicts, confusing setup macros, not very modern), ConTeXt is often a good alternative. But most users have never even heard of it before, which is why I appreciate Dave mentioning it in discussions like these.

I personally think that LaTeX is the best choice for typical users [0], but HN readers are seldom typical, and are often the types of users whom I think would appreciate ConTeXt.

> you could've just dropped the mic with "Ubuntu can accomplish much of what Windows and its packages can do" back in 2010, or with "Windows RT can do can accomplish much of what Windows can do" back in 2012, etc.

Well I used to use Windows RT exclusively (and am still fond of it), now use Linux exclusively, and prefer ConTeXt over the other TeX formats, so all of these seem like good arguments to me :).

[0]: https://tex.stackexchange.com/a/686455/270600

LaTeX is not ConTeXt.

Both use TeX as their layout engine. Both are different type of markup languages that live on top of TeX.

How did you install ConTeXt? Because "mtxrunjit" shouldn't be included in any modern versions.
What do you consider "modern"? Is a year old not modern? Am I supposed to be seeing something else?

  $ pacman -Ss context | grep TeX -B1
  extra/haskell-skylighting-format-context 0.1.0.2-163
      ConTeXt formatter for skylighting syntax highlighting library
  --
  extra/texlive-context 2025.2-1 (texlive)
      TeX Live - ConTeXt and packages
  extra/texlive-latexextra 2025.2-1 (texlive)
      TeX Live - LaTeX additional packages
  $ sudo pacman -S --needed texlive-context
  ...
  $ pacman -Qi texlive-context
  Name            : texlive-context
  Version         : 2025.2-1
  ...
  Build Date      : Sat 22 Mar 2025 07:15:15 PM EDT
Ah sorry, my bad. I thought that "mtxrunjit" was removed longer ago, but I only removed it from TeX Live in June 2025. Regardless, you should use the "context" command to compile files with ConTeXt. Example:

  $ cat <<EOF > hello-world.tex
  \starttext
      Hello, world!
  \stoptext
  EOF
  
  $ context hello-world.tex
  [...]
  system          > ConTeXt  ver: 2026.02.19 11:49 LMTX  fmt: 2026.3.7  int: english/english
  [...]
  system          | total runtime: 0.632 seconds of 0.768 seconds
  
  $ pdftotext hello-world.pdf - | tail -1
  Hello, world!