Make first-level as header

I have a typst document

#set heading(numbering: "1.A.1.")
#show heading.where(level: 1): it => align(center, block(it.body))
#set heading(numbering: (first, ..nums) => numbering("A.1.", ..nums))
#show heading.where(level: 1): it => [
  #pagebreak()
  #it
]

= Chapter 1

#lorem(1000)

= Chapter 2

#lorem(1000)

I would like to make the first-level heading as header, something like

Thank you for your support.

Hello @Akira,

The hydra package is great for that.

#import "@preview/hydra:0.6.2": hydra

#set page(header: context hydra(1, skip-starting: false))

= Title
2 Likes

In my setup, I hide the customized top level heading

#import "@preview/hydra:0.6.2": hydra
#set page(header: context hydra(1, skip-starting: false))

#show heading.where(level: 1): it => align(center, block(it.body))
#set heading(numbering: (first, ..nums) => numbering("A.1.", ..nums))
#show heading.where(level: 1): it => [
  #pagebreak()
  #it
]

= Chapter 1

== Some title

I wonder if we can hide/suppress the dot in the header.

Removing the first chapters numbering artifact with it.body isn’t optimal, this should already be handled while applying the numbering.

#import "@preview/hydra:0.6.2": hydra
#set page(header: context hydra(1, skip-starting: false))

#show heading.where(level: 1): set align(center)
#set heading(numbering: (first, ..nums) => if nums.pos().len() != 0 {numbering("A.1.", ..nums)})
#show heading.where(level: 1): it => {
  pagebreak()
  it
}

= Chapter 1

== Some title
1 Like

Thank you very much for your solution.