From f895d4cd63d23e9fa7e772b654fd58e12a829c92 Mon Sep 17 00:00:00 2001 From: szdytom Date: Thu, 10 Jul 2025 23:07:27 +0800 Subject: [PATCH] better footer/header Signed-off-by: szdytom --- styles.typ | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/styles.typ b/styles.typ index 2a6c801..6f08f88 100644 --- a/styles.typ +++ b/styles.typ @@ -151,9 +151,9 @@ }), grid.cell( fill: theme_color_set.at("20"), - { - it.body - }) + [ + #it.body + ]) ) v(0.5em) }) @@ -183,13 +183,17 @@ set align(right) if not isleft set text(9pt, font: zhfont_sans, fill: text_color_set.at("100"), weight: "semibold") - let prev_headers = query(selector().before(here())) - let book_title = query(selector()).first().text + let prev_secs = query(selector().before(here())) + let pre_chaps = query(selector().before(here())) let footer_content = if isleft { - book_title + if pre_chaps.len() > 0 { + pre_chaps.last() + } else { + "" + } } else { - if prev_headers.len() > 0 { - prev_headers.last() + if prev_secs.len() > 0 { + prev_secs.last() } else { "" } @@ -200,6 +204,14 @@ str(this_page), footer_content, ) + }, header: context { + let this_page = counter(page).get().at(0) + let isleft = calc.even(this_page) + set align(left) if isleft + set align(right) if not isleft + set text(9pt, font: zhfont_sans, fill: text_color_set.at("100"), weight: "semibold") + + query(selector()).first().text }) show figure.where(kind: "exercise-problem"): it => {