How to start the heading-numbering from 0?

The command #counter(heading).update(0) doesn’t work because its value is already 0. You can verify this by running #context counter(heading).get() and checking the result.

As an alternative, you could define a numbering function that subtracts 1 from the input arguments before returning the results. For example:

#set heading(numbering: (..x) => numbering("1.", ..x.pos().map(n => n - 1)))

= hello
= test

This would output:

0. hello
1. test
2 Likes