Ah your problem is actually a bit different from what I thought: you’re not using first-line-indent: (all: true, ...)
. Then you can solve it by making sure that the headings are always in a “first paragraph” after a block:
#show heading.where(level: 1): it => block() + upper(it.body)
You can adjust the block()
parameters to tune the spacing.