TYPST: A new markup + page layout engine to take on LaTeX


I’ve come back to working on this after a long break… the family were over from Australia!

I’ve been struggling to get my trial typst project working. Basically, I’ve been trying to reproduce a couple of examples from my recipe collection. In the RTF-based original, I use tabs to create the ingredients list, but of course, with MMD etc. tabs are not available, so I wanted to use a table without borders.

I am able to do it easily on Typst.com, but I kept getting error messages with the desktop version of Typst, whether I used the Raw Typst section type or the Raw Typst style.

I’ve finally narrowed the problem down: the desktop version of Typst not only chokes if you try to set column widths in terms of points rather than fractions, it also chokes on “stroke” assignment. Using fractions for columns is not really a problem, but the default strokes are heavy and cannot be changed.

So, for the moment I am stymied. I will try communicating with the developers to see if getting the desktop version to accept stroke assignment is anywhere on the roadmap.

But I’ll carry on experimenting and learning any new enhancements, like the lapreprint.typ.


Mark, go to the Typst discord server, there is a questions section and people are generally friendly and helpful there. Do you have a minimum test case that reproduces your problem (you can share a typst online doc)? The online and desktop versions should be close to identical (the underlying code is the same engine), so it is surprising that there is a difference…

Mark, I tried to change both stroke and columns in the local Typst and it works fine for me?

  columns: (70pt, 70pt, 70pt),
  stroke: none,
  inset: 10pt,
  align: horizon,
  [], [*Area*], [*Parameters*],
  $ pi h (D^2 - d^2) / 4 $,
    $h$: height \
    $D$: outer radius \
    $d$: inner radius
  $ sqrt(2) / 12 a^3 $,
  [$a$: edge length]

EDIT: and we can set a default to not use a stroke for the whole document:

#set table(stroke: none)

Tested with pandoc table to typst with no stroke borders, all locally. This is the markdown

# Introduction


`#set table(stroke: none)`{=typst}

| Sun | Moon | Stars |
| A   | B    | C     |
| D   | E    | F     |
: This is a Pandoc table



pandoc -s -t typst -o Test.pdf Test.md


So this should be compatible with Scrivener compiler…

1 Like

Typst V0.11.0 was recently released. The changelog is massive:

The biggest change is to tables, a lot more flexibility, described in this nice guide:

Another major change, templates are now officially supported as packages, and a new web inteface for them:

As usual, install and update is trivial with homebrew: brew install typst

1 Like

I got a message that Typst had been updated and so immediately installed the new version. I’ve skimmed through the new documentation on Tables. Although, at a quick glance, it didn’t seem to be saying anything new in relation to what I was trying, the fact that many developments have been made may explain why I could create borderless tables easily on the web editor, but the same code didn’t work when I tried in Scrivener.

Sadly, I haven’t had time to spend on it since before Christmas, and with the migration of the website, I still have much to do on that before I can get back to Typst.


A really cool Pandoc 3.2 release means a nice way to generat Typst properties. This was contributed by the Typst guys as they want to take some HTML+CSS like:

<p>Here is some <span style="color:orange">orange text</span>.</p>

To generate the equivalent Typst properties:

Here is some #text(fill: orange)[orange text].


In another thread on making an index, I made a filter that supports a nice indexing engine for Typst (in-dexter), the output works well from Scrivener ⇨ Typst:

Styles in Scrivener:
Screenshot 2024-05-15 at 08.26.59

Index in Typst: