diff --git a/lib.typ b/lib.typ index 16bb5b7..119885f 100644 --- a/lib.typ +++ b/lib.typ @@ -1,5 +1,6 @@ #import "modules/titlepage.typ": * #import "@preview/glossarium:0.5.9": print-glossary +#import "@preview/hydra:0.6.3": hydra #let in-outline = state("in-outline", false) #let flex-caption(long, short) = context { @@ -149,47 +150,13 @@ set page( // Header with current heading header: context { - let elements = query( - selector(heading.where(depth: 1)).after(here()) + grid(columns: (1fr, 1fr), + align(left, emph(hydra(1))), + align(right, emph(hydra(2))) ) - - // Don't show header if a new chapter is starting at the current page - if elements != () and elements.first().location().page() == here().page() and elements.first().depth == 1 { - return; + if hydra(1) != none { + line(length: 100%, stroke: 0.5pt, start: (0%, -1.8em)) } - - let display-heading - let display-numbering - let element - elements = query(selector(heading).after(here())) - if elements != () and elements.first().location().page() == here().page() { - element = elements.first() - if element.has("numbering") and element.numbering != none { - display-numbering = numbering(element.numbering, ..counter(heading).at(element.location())) - } else { - display-numbering = numbering(settings.headings-numbering-style, ..counter(heading).at(element.location())) - } - - display-heading = element.body - } else { - // Otherwise take the next heading backwards - elements = query( - heading.where().before(here()) - ) - if elements != () { - element = elements.last() - if element.has("numbering") and element.numbering != none { - display-numbering = numbering(element.numbering, ..counter(heading).at(element.location())) - } else { - display-numbering = numbering(settings.headings-numbering-style, ..counter(heading).at(element.location())) - } - - display-heading = element.body - } - } - - align(center, display-numbering + " " + display-heading) - line(length: 100%, stroke: (paint: gray)) }, // Footer with Page Numbering @@ -197,8 +164,7 @@ let current-page = counter(page).display() let final-page = counter(page).final().first() - line(length: 100%, stroke: (paint: gray)) - align(center)[#current-page / #final-page] + align(right, current-page) } )