How can I suppress headers and footers on blank verso/trailing pages

  1. Use align(center).
  2. Add the condition to the header.
#import "@preview/hydra:0.6.1": hydra

/// Check whether this is an empty page.
#let is-page-empty() = {
  let page-num = here().page()
  query(selector.or(<ep-start>, <ep-end>))
    .chunks(2)
    .any(((start, end)) => {
      start.location().page() < page-num and page-num < end.location().page()
    })
}

#set page(
  paper: "a7",
  margin: (inside: 1.5cm, outside: 1cm, y: 2cm),
  header: context if not is-page-empty() {
    if calc.odd(here().page()) {
      align(right, smallcaps(hydra(1)))
    } else {
      align(left, emph(hydra(2)))
    }
  },
  footer: context if not is-page-empty() {
    align(center, counter(page).display())
  },
)

#show pagebreak: it => [#metadata[]<ep-start>] + it + [#metadata[]<ep-end>]

#show heading.where(level: 1): set align(center)
#show heading.where(level: 1): set text(18pt, weight: "semibold")
#show heading.where(level: 1): it => pagebreak(weak: true, to: "odd") + it

#show heading.where(level: 2): set text(14pt, weight: "semibold")

= Part 1
#lorem(75)

== Section 1.a
#lorem(25)

= Part 2
#lorem(75)

== Section 2.a
#lorem(25)

1 Like