Hacker News new | ask | show | jobs
by ilyagr 99 days ago
https://github.com/typst/typst is an interesting competitor to ConTeXt. It's not even TeX, but somehow I tried (and liked) it before I tried CoTeXt. TeX syntax is not something I ever enjoyed in LaTeX.

How much more compatible with LaTeX is ConTeXt than typst? For example, is there tikz for ConTeXt?

1 comments

> TeX syntax is not something I ever enjoyed in LaTeX

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

Thanks for the useful info!