Migrate headers to package hydra
This commit is contained in:
parent
017b6e5f88
commit
1b69639706
1 changed files with 7 additions and 41 deletions
48
lib.typ
48
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)
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue