You can define your own numbering function to do what you need, for example
#set heading(numbering: (..n) => {
let index = n.pos().at(0)
// extend me
let first = ("First", "Second", "Third").at(index - 1, default: str(index) + "th")
// what about the rest
let rest = numbering("1.a", ..n.pos().slice(1, none))
if rest.len() > 0 { rest = " " + rest }
[#first -#rest]
})
= Bla
= Bla Bla
== Sub
=== Sub
Hello @oiseauidiot, did @bluss’s response solve your problem? If so, can you please mark it as a solution with the button? Otherwise, please tell us how can we help you further. Thanks!