From 51020fcf3cd6fbe62d148d2188b9aaac4445bf63 Mon Sep 17 00:00:00 2001 From: Eric Biedert Date: Mon, 16 Dec 2024 21:23:13 +0100 Subject: [PATCH] Get numbering of page counter from style chain (#5589) --- .../src/introspection/counter.rs | 30 ++++++++++-------- tests/ref/counter-page-display.png | Bin 0 -> 150 bytes tests/suite/introspection/counter.typ | 8 +++++ 3 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 tests/ref/counter-page-display.png diff --git a/crates/typst-library/src/introspection/counter.rs b/crates/typst-library/src/introspection/counter.rs index b884844c6..f67c6daab 100644 --- a/crates/typst-library/src/introspection/counter.rs +++ b/crates/typst-library/src/introspection/counter.rs @@ -366,20 +366,22 @@ impl Counter { .custom() .or_else(|| { let styles = styles?; - let CounterKey::Selector(Selector::Elem(func, _)) = self.0 else { - return None; - }; - - if func == HeadingElem::elem() { - HeadingElem::numbering_in(styles).clone() - } else if func == FigureElem::elem() { - FigureElem::numbering_in(styles).clone() - } else if func == EquationElem::elem() { - EquationElem::numbering_in(styles).clone() - } else if func == FootnoteElem::elem() { - Some(FootnoteElem::numbering_in(styles).clone()) - } else { - None + match self.0 { + CounterKey::Page => PageElem::numbering_in(styles).clone(), + CounterKey::Selector(Selector::Elem(func, _)) => { + if func == HeadingElem::elem() { + HeadingElem::numbering_in(styles).clone() + } else if func == FigureElem::elem() { + FigureElem::numbering_in(styles).clone() + } else if func == EquationElem::elem() { + EquationElem::numbering_in(styles).clone() + } else if func == FootnoteElem::elem() { + Some(FootnoteElem::numbering_in(styles).clone()) + } else { + None + } + } + _ => None, } }) .unwrap_or_else(|| NumberingPattern::from_str("1.1").unwrap().into()); diff --git a/tests/ref/counter-page-display.png b/tests/ref/counter-page-display.png new file mode 100644 index 0000000000000000000000000000000000000000..040b634d5976906bbce629db4767413e3ea52211 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^6+kS<0VEg>Eo$`yQn8*cjv*Ddl7HAcG$dYm6xi*q zE4Q@*!dTXJw4ICn#G{kb_Ol&%J8$v(fBp56 rU(q$IQ{MiMpS$$C8}|gTF$LX>f+v31PV_aI53